From 0b8a0ca4bcd45cc0ba89261e427612be118dd18a Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 30 Oct 2013 16:50:25 +0100 Subject: [PATCH] Test: added a SCAN test trying to trigger HT resize. --- tests/unit/scan.tcl | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/unit/scan.tcl b/tests/unit/scan.tcl index 8951bcde..71c4e365 100644 --- a/tests/unit/scan.tcl +++ b/tests/unit/scan.tcl @@ -166,4 +166,33 @@ start_server {tags {"scan"}} { assert_equal $count [llength $keys2] } } + + test "SCAN guarantees check under write load" { + r flushdb + r debug populate 100 + + # We start scanning here, so keys from 0 to 99 should all be + # reported at the end of the iteration. + set keys {} + while 1 { + set res [r scan $cur] + set cur [lindex $res 0] + set k [lindex $res 1] + lappend keys {*}$k + if {$cur == 0} break + # Write 10 random keys at every SCAN iteration. + for {set j 0} {$j < 10} {incr j} { + r set addedkey:[randomInt 1000] foo + } + } + + set keys2 {} + foreach k $keys { + if {[string length $k] > 6} continue + lappend keys2 $k + } + + set keys2 [lsort -unique $keys2] + assert_equal 100 [llength $keys2] + } }