diff --git a/tests/unit/scan.tcl b/tests/unit/scan.tcl index af4bb766..280d3141 100644 --- a/tests/unit/scan.tcl +++ b/tests/unit/scan.tcl @@ -52,4 +52,38 @@ start_server {tags {"scan"}} { set keys [lsort -unique $keys] assert_equal 100 [llength $keys] } + + foreach enc {intset hashtable} { + test "SSCAN with encoding $enc" { + # Create the Set + r del set + if {$enc eq {intset}} { + set prefix "" + } else { + set prefix "ele:" + } + set elements {} + for {set j 0} {$j < 100} {incr j} { + lappend elements ${prefix}${j} + } + r sadd set {*}$elements + + # Verify that the encoding matches. + assert {[r object encoding set] eq $enc} + + # Test SSCAN + set cur 0 + set keys {} + while 1 { + set res [r sscan set $cur] + set cur [lindex $res 0] + set k [lindex $res 1] + lappend keys {*}$k + if {$cur == 0} break + } + + set keys [lsort -unique $keys] + assert_equal 100 [llength $keys] + } + } }