From 6ddcba6ec9001826ffcafcd943e64b632e4f41f5 Mon Sep 17 00:00:00 2001 From: antirez Date: Fri, 9 Oct 2015 09:47:17 +0200 Subject: [PATCH] Test: basic lazyfree unit test. --- tests/test_helper.tcl | 1 + tests/unit/lazyfree.tcl | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 tests/unit/lazyfree.tcl diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index d600abf0a..9647511e5 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -51,6 +51,7 @@ set ::all_tests { unit/bitops unit/memefficiency unit/hyperloglog + unit/lazyfree } # Index to the next test to run in the ::all_tests list. set ::next_test 0 diff --git a/tests/unit/lazyfree.tcl b/tests/unit/lazyfree.tcl new file mode 100644 index 000000000..4e994494b --- /dev/null +++ b/tests/unit/lazyfree.tcl @@ -0,0 +1,39 @@ +start_server {tags {"lazyfree"}} { + test "UNLINK can reclaim memory in background" { + set orig_mem [s used_memory] + set args {} + for {set i 0} {$i < 100000} {incr i} { + lappend args $i + } + r sadd myset {*}$args + assert {[r scard myset] == 100000} + set peak_mem [s used_memory] + assert {[r unlink myset] == 1} + assert {$peak_mem > $orig_mem+1000000} + wait_for_condition 50 100 { + [s used_memory] < $peak_mem && + [s used_memory] < $orig_mem*2 + } else { + fail "Memory is not reclaimed by UNLINK" + } + } + + test "FLUSHDB ASYNC can reclaim memory in background" { + set orig_mem [s used_memory] + set args {} + for {set i 0} {$i < 100000} {incr i} { + lappend args $i + } + r sadd myset {*}$args + assert {[r scard myset] == 100000} + set peak_mem [s used_memory] + r flushdb async + assert {$peak_mem > $orig_mem+1000000} + wait_for_condition 50 100 { + [s used_memory] < $peak_mem && + [s used_memory] < $orig_mem*2 + } else { + fail "Memory is not reclaimed by FLUSHDB ASYNC" + } + } +}