Skip to content

Commit

Permalink
Add test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
zuiderkwast committed Oct 14, 2021
1 parent 3b1e307 commit 6f01fb0
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions tests/integration/replication-3.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,63 @@ start_server {tags {"repl external:skip"}} {
after 6000
r -1 dbsize
} {0}

test {Writable replica doesn't return expired keys} {
r -1 select 5
assert {[r -1 dbsize] == 0}
r -1 config set slave-read-only no
r -1 debug set-active-expire 0
r -1 set key1 5 px 10
r -1 set key2 5 px 10
after 50
assert_equal 2 [r -1 dbsize] ; # active expire is off
assert_equal 1 [r -1 incr key1] ; # incr expires and re-creates key1
assert_equal -1 [r -1 ttl key1] ; # incr created key1 without TTL
assert_equal {} [r -1 get key2] ; # key2 expired but not deleted
assert_equal 2 [r -1 dbsize]
# cleanup
r -1 del key1 key2
r -1 debug set-active-expire 1
r -1 dbsize
} {0}

test {PFCOUNT updates cache on readonly replica} {
r -1 select 5
assert {[r -1 dbsize] == 0}
r -1 config set slave-read-only no
r -1 debug set-active-expire 0
r -1 pfadd key a b c d e f g h i j k l m n o p q
set strval [r -1 get key]
r -1 config set slave-read-only yes
assert_equal 17 [r -1 pfcount key]
assert {$strval != [r -1 get key]} ; # pfcount updates cache even
; # on readonly replica
# cleanup
r -1 config set slave-read-only no
r -1 del key
r -1 config set slave-read-only yes
r -1 debug set-active-expire 1
r -1 dbsize
} {0}

test {PFCOUNT doesn't use expired key on readonly replica} {
r -1 select 5
assert {[r -1 dbsize] == 0}
r -1 config set slave-read-only no
r -1 debug set-active-expire 0
r -1 pfadd key a b c d e f g h i j k l m n o p q
r -1 pexpire key 10
r -1 config set slave-read-only yes
after 50
assert_equal [r -1 pfcount key] 0 ; # expired key not used
assert_equal [r -1 dbsize] 1 ; # but it's also not deleted
# cleanup
r -1 config set slave-read-only no
r -1 del key
r -1 config set slave-read-only yes
r -1 debug set-active-expire 1
r -1 dbsize
} {0}
}
}

Expand Down

0 comments on commit 6f01fb0

Please sign in to comment.