adding flash test
Former-commit-id: 8c0f0bd1b5c83027e64765f9942f284bdb8ebcb4
This commit is contained in:
parent
7df4805831
commit
a42038bc54
@ -25,3 +25,4 @@ appendonly no
|
|||||||
appendfsync everysec
|
appendfsync everysec
|
||||||
no-appendfsync-on-rewrite no
|
no-appendfsync-on-rewrite no
|
||||||
activerehashing yes
|
activerehashing yes
|
||||||
|
|
||||||
|
@ -53,6 +53,7 @@ set ::all_tests {
|
|||||||
unit/slowlog
|
unit/slowlog
|
||||||
unit/scripting
|
unit/scripting
|
||||||
unit/maxmemory
|
unit/maxmemory
|
||||||
|
unit/flash
|
||||||
unit/introspection
|
unit/introspection
|
||||||
unit/introspection-2
|
unit/introspection-2
|
||||||
unit/limits
|
unit/limits
|
||||||
|
44
tests/unit/flash.tcl
Normal file
44
tests/unit/flash.tcl
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
start_server {tags {"flash"} overrides {"storage-provider flash /mnt/tmp"}} {
|
||||||
|
|
||||||
|
foreach policy {
|
||||||
|
allkeys-random allkeys-lru allkeys-lfu
|
||||||
|
} {
|
||||||
|
test "FLASH - is eviction working without data loss (successfully stored to flash)? (policy $policy)" {
|
||||||
|
# make sure to start with a blank instance
|
||||||
|
r flushall
|
||||||
|
# Get the current memory limit and calculate a new limit.
|
||||||
|
# Set limit to 100M.
|
||||||
|
set used [s used_memory]
|
||||||
|
set limit [expr {$used+100000*1024}]
|
||||||
|
r config set maxmemory $limit
|
||||||
|
r config set maxmemory-policy $policy
|
||||||
|
# Now add keys equivalent to 1024b until the limit is almost reached.
|
||||||
|
set numkeys 0
|
||||||
|
r set first val
|
||||||
|
while 1 {
|
||||||
|
r set $numkeys xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
incr numkeys
|
||||||
|
if {[s used_memory]+1024 >= $limit} {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Add additional keys to force eviction
|
||||||
|
# should still be under the limit for maxmemory, however all keys set should still exist between flash and memory
|
||||||
|
# check same number of keys exist in addition to values of first and last keys
|
||||||
|
set err 0
|
||||||
|
for {set j 0} {$j < 10000} {incr j} {
|
||||||
|
catch {
|
||||||
|
r set p2$j xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
} err
|
||||||
|
assert {$err == {OK}}
|
||||||
|
}
|
||||||
|
r set last val
|
||||||
|
set dbsize [r dbsize]
|
||||||
|
assert {[s used_memory] < $limit+4096}
|
||||||
|
assert {$dbsize == $numkeys+10002}
|
||||||
|
assert {[r get first] == {val}}
|
||||||
|
assert {[r get last] == {val}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
40
tests/unit/flash.tcl.save
Normal file
40
tests/unit/flash.tcl.save
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
start_server {tags {"flash"} overrides {"storage-provider flash /mnt/tmp/"}} {
|
||||||
|
test "Without maxmemory small integers are shared" {
|
||||||
|
r config set maxmemory 0
|
||||||
|
r set a 1
|
||||||
|
assert {[r object refcount a] > 1}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach policy {
|
||||||
|
allkeys-random allkeys-lru allkeys-lfu
|
||||||
|
} {
|
||||||
|
test "maxmemory - is the memory limit honoured? (policy $policy)" {
|
||||||
|
# make sure to start with a blank instance
|
||||||
|
r flushall
|
||||||
|
# Get the current memory limit and calculate a new limit.
|
||||||
|
# We just add 100k to the current memory size so that it is
|
||||||
|
# fast for us to reach that limit.
|
||||||
|
set used [s used_memory]
|
||||||
|
set limit [expr {$used+100000*1024}]
|
||||||
|
r config set maxmemory $limit
|
||||||
|
r config set maxmemory-policy $policy
|
||||||
|
# Now add keys until the limit is almost reached.
|
||||||
|
set numkeys 0
|
||||||
|
while 1 {
|
||||||
|
r setex [randomKey] 10000 x
|
||||||
|
incr numkeys
|
||||||
|
if {[s used_memory]+4096 > $limit} {
|
||||||
|
assert {$numkeys > 10}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# If we add the same number of keys already added again, we
|
||||||
|
# should still be under the limit.
|
||||||
|
for {set j 0} {$j < $numkeys} {incr j} {
|
||||||
|
r setex [randomKey] 10000 x
|
||||||
|
}
|
||||||
|
assert {[s used_memory] < ($limit+4096)}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -240,4 +240,3 @@ test_slave_buffers {slave buffer are counted correctly} 1000000 10 0 1
|
|||||||
# test that slave buffer don't induce eviction
|
# test that slave buffer don't induce eviction
|
||||||
# test again with fewer (and bigger) commands without pipeline, but with eviction
|
# test again with fewer (and bigger) commands without pipeline, but with eviction
|
||||||
test_slave_buffers "replica buffer don't induce eviction" 100000 100 1 0
|
test_slave_buffers "replica buffer don't induce eviction" 100000 100 1 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user