diff --git a/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch
new file mode 100644
index 0000000..5a5ff36
--- /dev/null
+++ b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch
@@ -0,0 +1,2855 @@
+diff --git a/tests/support/server.tcl b/tests/support/server.tcl
+index 5578f1fd6..55c0a5253 100644
+--- a/tests/support/server.tcl
++++ b/tests/support/server.tcl
+@@ -143,11 +143,12 @@ proc start_server {options {code undefined}} {
+     if {$::external} {
+         if {[llength $::servers] == 0} {
+             set srv {}
++            set baseport [expr {$::port-100}]
+             dict set srv "host" $::host
+-            dict set srv "port" $::port
+-            set client [redis $::host $::port]
++            dict set srv "port" $baseport
++            set client [redis $::host $baseport]
+             dict set srv "client" $client
+-            $client select 9
++           # $client select 9
+ 
+             # append the server to the stack
+             lappend ::servers $srv
+diff --git a/tests/support/test.tcl b/tests/support/test.tcl
+index 6f02f2f12..5a31cb4ca 100644
+--- a/tests/support/test.tcl
++++ b/tests/support/test.tcl
+@@ -39,8 +39,8 @@ proc assert_error {pattern code} {
+ }
+ 
+ proc assert_encoding {enc key} {
+-    set dbg [r debug object $key]
+-    assert_match "* encoding:$enc *" $dbg
++#    set dbg [r debug object $key]
++#    assert_match "* encoding:$enc *" $dbg
+ }
+ 
+ proc assert_type {type key} {
+diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl
+index 8978631e0..33c10eb15 100644
+--- a/tests/test_helper.tcl
++++ b/tests/test_helper.tcl
+@@ -144,14 +144,14 @@ proc reconnect {args} {
+     set srv [lindex $::servers end+$level]
+     set host [dict get $srv "host"]
+     set port [dict get $srv "port"]
+-    set config [dict get $srv "config"]
++# set config [dict get $srv "config"]
+     set client [redis $host $port]
+     dict set srv "client" $client
+ 
+     # select the right db when we don't have to authenticate
+-    if {![dict exists $config "requirepass"]} {
+-        $client select 9
+-    }
++#    if {![dict exists $config "requirepass"]} {
++#        $client select 9
++#    }
+ 
+     # re-set $srv in the servers list
+     lset ::servers end+$level $srv
+@@ -168,7 +168,7 @@ proc redis_deferring_client {args} {
+     set client [redis [srv $level "host"] [srv $level "port"] 1]
+ 
+     # select the right db and read the response (OK)
+-    $client select 9
++    $client select 0
+     $client read
+     return $client
+ }
+@@ -488,6 +488,7 @@ for {set j 0} {$j < [llength $argv]} {incr j} {
+     } elseif {$opt eq {--host}} {
+         set ::external 1
+         set ::host $arg
++        set ::numclients 1
+         incr j
+     } elseif {$opt eq {--port}} {
+         set ::port $arg
+diff --git a/tests/unit/auth.tcl b/tests/unit/auth.tcl
+index f5da728e8..6ae96f295 100644
+--- a/tests/unit/auth.tcl
++++ b/tests/unit/auth.tcl
+@@ -1,15 +1,16 @@
+-start_server {tags {"auth"}} {
+-    test {AUTH fails if there is no password configured server side} {
+-        catch {r auth foo} err
+-        set _ $err
+-    } {ERR*no password*}
+-}
++#we don't currently integrate with Redis's tag system to remove our server's password
++#start_server {tags {"auth"}} {
++#    test {AUTH fails if there is no password configured server side} {
++#        catch {r auth foo} err
++#        set _ $err
++#    } {ERR*no password*}
++#}
+ 
+ start_server {tags {"auth"} overrides {requirepass foobar}} {
+     test {AUTH fails when a wrong password is given} {
+         catch {r auth wrong!} err
+         set _ $err
+-    } {ERR*invalid password}
++    } {WRONGPASS invalid username-password pair or user is disabled.}
+ 
+     test {Arbitrary command gives an error when AUTH is required} {
+         catch {r set foo bar} err
+@@ -17,7 +18,7 @@ start_server {tags {"auth"} overrides {requirepass foobar}} {
+     } {NOAUTH*}
+ 
+     test {AUTH succeeds when the right password is given} {
+-        r auth foobar
++        r auth dataWrite dataWrite
+     } {OK}
+ 
+     test {Once AUTH succeeded we can actually send commands to the server} {
+@@ -25,19 +26,19 @@ start_server {tags {"auth"} overrides {requirepass foobar}} {
+         r incr foo
+     } {101}
+ 
+-    test {For unauthenticated clients multibulk and bulk length are limited} {
+-        set rr [redis [srv "host"] [srv "port"] 0]
+-        $rr write "*100\r\n"
+-        $rr flush
+-        catch {[$rr read]} e
+-        assert_match {*unauthenticated multibulk length*} $e
+-        $rr close
+-
+-        set rr [redis [srv "host"] [srv "port"] 0]
+-        $rr write "*1\r\n\$100000000\r\n"
+-        $rr flush
+-        catch {[$rr read]} e
+-        assert_match {*unauthenticated bulk length*} $e
+-        $rr close
+-    }
++#    test {For unauthenticated clients multibulk and bulk length are limited} {
++#        set rr [redis [srv "host"] [srv "port"] 0]
++#        $rr write "*100\r\n"
++#        $rr flush
++#        catch {[$rr read]} e
++#        assert_match {*unauthenticated multibulk length*} $e
++#        $rr close
++#
++#        set rr [redis [srv "host"] [srv "port"] 0]
++#        $rr write "*1\r\n\$100000000\r\n"
++#        $rr flush
++#        catch {[$rr read]} e
++#        assert_match {*unauthenticated bulk length*} $e
++#        $rr close
++#    }
+ }
+diff --git a/tests/unit/dump.tcl b/tests/unit/dump.tcl
+index 4c4e5d075..18bb694f2 100644
+--- a/tests/unit/dump.tcl
++++ b/tests/unit/dump.tcl
+@@ -41,34 +41,35 @@ start_server {tags {"dump"}} {
+         r set foo bar
+         set encoded [r dump foo]
+         set now [clock milliseconds]
+-        r debug set-active-expire 0
++#        r debug set-active-expire 0
+         r restore foo [expr $now-3000] $encoded absttl REPLACE
+-        catch {r debug object foo} e
+-        r debug set-active-expire 1
+-        set e
+-    } {ERR no such key}
+-
+-    test {RESTORE can set LRU} {
+-        r set foo bar
+-        set encoded [r dump foo]
+-        r del foo
+-        r config set maxmemory-policy allkeys-lru
+-        r restore foo 0 $encoded idletime 1000
+-        set idle [r object idletime foo]
+-        assert {$idle >= 1000 && $idle <= 1010}
+-        r get foo
+-    } {bar}
+-    
+-    test {RESTORE can set LFU} {
+-        r set foo bar
+-        set encoded [r dump foo]
+-        r del foo
+-        r config set maxmemory-policy allkeys-lfu
+-        r restore foo 0 $encoded freq 100
+-        set freq [r object freq foo]
+-        assert {$freq == 100}
++#        catch {r debug object foo} e
++#        r debug set-active-expire 1
++#        set e
+         r get foo
+-    } {bar}
++    } {}
++
++#    test {RESTORE can set LRU} {
++#        r set foo bar
++#        set encoded [r dump foo]
++#        r del foo
++#        r config set maxmemory-policy allkeys-lru
++#        r restore foo 0 $encoded idletime 1000
++#        set idle [r object idletime foo]
++#        assert {$idle >= 1000 && $idle <= 1010}
++#        r get foo
++#    } {bar}
++#    
++#    test {RESTORE can set LFU} {
++#        r set foo bar
++#        set encoded [r dump foo]
++#        r del foo
++#        r config set maxmemory-policy allkeys-lfu
++#        r restore foo 0 $encoded freq 100
++#        set freq [r object freq foo]
++#        assert {$freq == 100}
++#        r get foo
++#    } {bar}
+ 
+     test {RESTORE returns an error of the key already exists} {
+         r set foo bar
+@@ -97,283 +98,283 @@ start_server {tags {"dump"}} {
+         r dump nonexisting_key
+     } {}
+ 
+-    test {MIGRATE is caching connections} {
+-        # Note, we run this as first test so that the connection cache
+-        # is empty.
+-        set first [srv 0 client]
+-        r set key "Some Value"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert_match {*migrate_cached_sockets:0*} [r -1 info]
+-            r -1 migrate $second_host $second_port key 9 1000
+-            assert_match {*migrate_cached_sockets:1*} [r -1 info]
+-        }
+-    }
+-
+-    test {MIGRATE cached connections are released after some time} {
+-        after 15000
+-        assert_match {*migrate_cached_sockets:0*} [r info]
+-    }
+-
+-    test {MIGRATE is able to migrate a key between two instances} {
+-        set first [srv 0 client]
+-        r set key "Some Value"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key] == 1}
+-            assert {[$second exists key] == 0}
+-            set ret [r -1 migrate $second_host $second_port key 9 5000]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key] == 0}
+-            assert {[$second exists key] == 1}
+-            assert {[$second get key] eq {Some Value}}
+-            assert {[$second ttl key] == -1}
+-        }
+-    }
+-
+-    test {MIGRATE is able to copy a key between two instances} {
+-        set first [srv 0 client]
+-        r del list
+-        r lpush list a b c d
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists list] == 1}
+-            assert {[$second exists list] == 0}
+-            set ret [r -1 migrate $second_host $second_port list 9 5000 copy]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists list] == 1}
+-            assert {[$second exists list] == 1}
+-            assert {[$first lrange list 0 -1] eq [$second lrange list 0 -1]}
+-        }
+-    }
+-
+-    test {MIGRATE will not overwrite existing keys, unless REPLACE is used} {
+-        set first [srv 0 client]
+-        r del list
+-        r lpush list a b c d
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists list] == 1}
+-            assert {[$second exists list] == 0}
+-            $second set list somevalue
+-            catch {r -1 migrate $second_host $second_port list 9 5000 copy} e
+-            assert_match {ERR*} $e
+-            set res [r -1 migrate $second_host $second_port list 9 5000 copy replace]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists list] == 1}
+-            assert {[$second exists list] == 1}
+-            assert {[$first lrange list 0 -1] eq [$second lrange list 0 -1]}
+-        }
+-    }
+-
+-    test {MIGRATE propagates TTL correctly} {
+-        set first [srv 0 client]
+-        r set key "Some Value"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key] == 1}
+-            assert {[$second exists key] == 0}
+-            $first expire key 10
+-            set ret [r -1 migrate $second_host $second_port key 9 5000]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key] == 0}
+-            assert {[$second exists key] == 1}
+-            assert {[$second get key] eq {Some Value}}
+-            assert {[$second ttl key] >= 7 && [$second ttl key] <= 10}
+-        }
+-    }
+-
+-    test {MIGRATE can correctly transfer large values} {
+-        set first [srv 0 client]
+-        r del key
+-        for {set j 0} {$j < 40000} {incr j} {
+-            r rpush key 1 2 3 4 5 6 7 8 9 10
+-            r rpush key "item 1" "item 2" "item 3" "item 4" "item 5" \
+-                        "item 6" "item 7" "item 8" "item 9" "item 10"
+-        }
+-        assert {[string length [r dump key]] > (1024*64)}
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key] == 1}
+-            assert {[$second exists key] == 0}
+-            set ret [r -1 migrate $second_host $second_port key 9 10000]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key] == 0}
+-            assert {[$second exists key] == 1}
+-            assert {[$second ttl key] == -1}
+-            assert {[$second llen key] == 40000*20}
+-        }
+-    }
+-
+-    test {MIGRATE can correctly transfer hashes} {
+-        set first [srv 0 client]
+-        r del key
+-        r hmset key field1 "item 1" field2 "item 2" field3 "item 3" \
+-                    field4 "item 4" field5 "item 5" field6 "item 6"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key] == 1}
+-            assert {[$second exists key] == 0}
+-            set ret [r -1 migrate $second_host $second_port key 9 10000]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key] == 0}
+-            assert {[$second exists key] == 1}
+-            assert {[$second ttl key] == -1}
+-        }
+-    }
+-
+-    test {MIGRATE timeout actually works} {
+-        set first [srv 0 client]
+-        r set key "Some Value"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key] == 1}
+-            assert {[$second exists key] == 0}
+-
+-            set rd [redis_deferring_client]
+-            $rd debug sleep 1.0 ; # Make second server unable to reply.
+-            set e {}
+-            catch {r -1 migrate $second_host $second_port key 9 500} e
+-            assert_match {IOERR*} $e
+-        }
+-    }
+-
+-    test {MIGRATE can migrate multiple keys at once} {
+-        set first [srv 0 client]
+-        r set key1 "v1"
+-        r set key2 "v2"
+-        r set key3 "v3"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            assert {[$first exists key1] == 1}
+-            assert {[$second exists key1] == 0}
+-            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys key1 key2 key3]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key1] == 0}
+-            assert {[$first exists key2] == 0}
+-            assert {[$first exists key3] == 0}
+-            assert {[$second get key1] eq {v1}}
+-            assert {[$second get key2] eq {v2}}
+-            assert {[$second get key3] eq {v3}}
+-        }
+-    }
+-
+-    test {MIGRATE with multiple keys must have empty key arg} {
+-        catch {r MIGRATE 127.0.0.1 6379 NotEmpty 9 5000 keys a b c} e
+-        set e
+-    } {*empty string*}
+-
+-    test {MIGRATE with multiple keys migrate just existing ones} {
+-        set first [srv 0 client]
+-        r set key1 "v1"
+-        r set key2 "v2"
+-        r set key3 "v3"
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys nokey-1 nokey-2 nokey-2]
+-            assert {$ret eq {NOKEY}}
+-
+-            assert {[$first exists key1] == 1}
+-            assert {[$second exists key1] == 0}
+-            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys nokey-1 key1 nokey-2 key2 nokey-3 key3]
+-            assert {$ret eq {OK}}
+-            assert {[$first exists key1] == 0}
+-            assert {[$first exists key2] == 0}
+-            assert {[$first exists key3] == 0}
+-            assert {[$second get key1] eq {v1}}
+-            assert {[$second get key2] eq {v2}}
+-            assert {[$second get key3] eq {v3}}
+-        }
+-    }
+-
+-    test {MIGRATE with multiple keys: stress command rewriting} {
+-        set first [srv 0 client]
+-        r flushdb
+-        r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q]
+-
+-            assert {[$first dbsize] == 0}
+-            assert {[$second dbsize] == 15}
+-        }
+-    }
+-
+-    test {MIGRATE with multiple keys: delete just ack keys} {
+-        set first [srv 0 client]
+-        r flushdb
+-        r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-
+-            $second mset c _ d _; # Two busy keys and no REPLACE used
+-
+-            catch {r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q} e
+-
+-            assert {[$first dbsize] == 2}
+-            assert {[$second dbsize] == 15}
+-            assert {[$first exists c] == 1}
+-            assert {[$first exists d] == 1}
+-        }
+-    }
+-
+-    test {MIGRATE AUTH: correct and wrong password cases} {
+-        set first [srv 0 client]
+-        r del list
+-        r lpush list a b c d
+-        start_server {tags {"repl"}} {
+-            set second [srv 0 client]
+-            set second_host [srv 0 host]
+-            set second_port [srv 0 port]
+-            $second config set requirepass foobar
+-            $second auth foobar
+-
+-            assert {[$first exists list] == 1}
+-            assert {[$second exists list] == 0}
+-            set ret [r -1 migrate $second_host $second_port list 9 5000 AUTH foobar]
+-            assert {$ret eq {OK}}
+-            assert {[$second exists list] == 1}
+-            assert {[$second lrange list 0 -1] eq {d c b a}}
+-
+-            r -1 lpush list a b c d
+-            $second config set requirepass foobar2
+-            catch {r -1 migrate $second_host $second_port list 9 5000 AUTH foobar} err
+-            assert_match {*invalid password*} $err
+-        }
+-    }
++#    test {MIGRATE is caching connections} {
++#        # Note, we run this as first test so that the connection cache
++#        # is empty.
++#        set first [srv 0 client]
++#        r set key "Some Value"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert_match {*migrate_cached_sockets:0*} [r -1 info]
++#            r -1 migrate $second_host $second_port key 9 1000
++#            assert_match {*migrate_cached_sockets:1*} [r -1 info]
++#        }
++#    }
++#
++#    test {MIGRATE cached connections are released after some time} {
++#        after 15000
++#        assert_match {*migrate_cached_sockets:0*} [r info]
++#    }
++#
++#    test {MIGRATE is able to migrate a key between two instances} {
++#        set first [srv 0 client]
++#        r set key "Some Value"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key] == 1}
++#            assert {[$second exists key] == 0}
++#            set ret [r -1 migrate $second_host $second_port key 9 5000]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key] == 0}
++#            assert {[$second exists key] == 1}
++#            assert {[$second get key] eq {Some Value}}
++#            assert {[$second ttl key] == -1}
++#        }
++#    }
++#
++#    test {MIGRATE is able to copy a key between two instances} {
++#        set first [srv 0 client]
++#        r del list
++#        r lpush list a b c d
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists list] == 1}
++#            assert {[$second exists list] == 0}
++#            set ret [r -1 migrate $second_host $second_port list 9 5000 copy]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists list] == 1}
++#            assert {[$second exists list] == 1}
++#            assert {[$first lrange list 0 -1] eq [$second lrange list 0 -1]}
++#        }
++#    }
++#
++#    test {MIGRATE will not overwrite existing keys, unless REPLACE is used} {
++#        set first [srv 0 client]
++#        r del list
++#        r lpush list a b c d
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists list] == 1}
++#            assert {[$second exists list] == 0}
++#            $second set list somevalue
++#            catch {r -1 migrate $second_host $second_port list 9 5000 copy} e
++#            assert_match {ERR*} $e
++#            set res [r -1 migrate $second_host $second_port list 9 5000 copy replace]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists list] == 1}
++#            assert {[$second exists list] == 1}
++#            assert {[$first lrange list 0 -1] eq [$second lrange list 0 -1]}
++#        }
++#    }
++#
++#    test {MIGRATE propagates TTL correctly} {
++#        set first [srv 0 client]
++#        r set key "Some Value"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key] == 1}
++#            assert {[$second exists key] == 0}
++#            $first expire key 10
++#            set ret [r -1 migrate $second_host $second_port key 9 5000]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key] == 0}
++#            assert {[$second exists key] == 1}
++#            assert {[$second get key] eq {Some Value}}
++#            assert {[$second ttl key] >= 7 && [$second ttl key] <= 10}
++#        }
++#    }
++#
++#    test {MIGRATE can correctly transfer large values} {
++#        set first [srv 0 client]
++#        r del key
++#        for {set j 0} {$j < 40000} {incr j} {
++#            r rpush key 1 2 3 4 5 6 7 8 9 10
++#            r rpush key "item 1" "item 2" "item 3" "item 4" "item 5" \
++#                        "item 6" "item 7" "item 8" "item 9" "item 10"
++#        }
++#        assert {[string length [r dump key]] > (1024*64)}
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key] == 1}
++#            assert {[$second exists key] == 0}
++#            set ret [r -1 migrate $second_host $second_port key 9 10000]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key] == 0}
++#            assert {[$second exists key] == 1}
++#            assert {[$second ttl key] == -1}
++#            assert {[$second llen key] == 40000*20}
++#        }
++#    }
++#
++#    test {MIGRATE can correctly transfer hashes} {
++#        set first [srv 0 client]
++#        r del key
++#        r hmset key field1 "item 1" field2 "item 2" field3 "item 3" \
++#                    field4 "item 4" field5 "item 5" field6 "item 6"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key] == 1}
++#            assert {[$second exists key] == 0}
++#            set ret [r -1 migrate $second_host $second_port key 9 10000]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key] == 0}
++#            assert {[$second exists key] == 1}
++#            assert {[$second ttl key] == -1}
++#        }
++#    }
++#
++#    test {MIGRATE timeout actually works} {
++#        set first [srv 0 client]
++#        r set key "Some Value"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key] == 1}
++#            assert {[$second exists key] == 0}
++#
++#            set rd [redis_deferring_client]
++#            $rd debug sleep 1.0 ; # Make second server unable to reply.
++#            set e {}
++#            catch {r -1 migrate $second_host $second_port key 9 500} e
++#            assert_match {IOERR*} $e
++#        }
++#    }
++#
++#    test {MIGRATE can migrate multiple keys at once} {
++#        set first [srv 0 client]
++#        r set key1 "v1"
++#        r set key2 "v2"
++#        r set key3 "v3"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            assert {[$first exists key1] == 1}
++#            assert {[$second exists key1] == 0}
++#            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys key1 key2 key3]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key1] == 0}
++#            assert {[$first exists key2] == 0}
++#            assert {[$first exists key3] == 0}
++#            assert {[$second get key1] eq {v1}}
++#            assert {[$second get key2] eq {v2}}
++#            assert {[$second get key3] eq {v3}}
++#        }
++#    }
++#
++#    test {MIGRATE with multiple keys must have empty key arg} {
++#        catch {r MIGRATE 127.0.0.1 6379 NotEmpty 9 5000 keys a b c} e
++#        set e
++#    } {*empty string*}
++#
++#    test {MIGRATE with multiple keys migrate just existing ones} {
++#        set first [srv 0 client]
++#        r set key1 "v1"
++#        r set key2 "v2"
++#        r set key3 "v3"
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys nokey-1 nokey-2 nokey-2]
++#            assert {$ret eq {NOKEY}}
++#
++#            assert {[$first exists key1] == 1}
++#            assert {[$second exists key1] == 0}
++#            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys nokey-1 key1 nokey-2 key2 nokey-3 key3]
++#            assert {$ret eq {OK}}
++#            assert {[$first exists key1] == 0}
++#            assert {[$first exists key2] == 0}
++#            assert {[$first exists key3] == 0}
++#            assert {[$second get key1] eq {v1}}
++#            assert {[$second get key2] eq {v2}}
++#            assert {[$second get key3] eq {v3}}
++#        }
++#    }
++#
++#    test {MIGRATE with multiple keys: stress command rewriting} {
++#        set first [srv 0 client]
++#        r flushdb
++#        r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            set ret [r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q]
++#
++#            assert {[$first dbsize] == 0}
++#            assert {[$second dbsize] == 15}
++#        }
++#    }
++#
++#    test {MIGRATE with multiple keys: delete just ack keys} {
++#        set first [srv 0 client]
++#        r flushdb
++#        r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#
++#            $second mset c _ d _; # Two busy keys and no REPLACE used
++#
++#            catch {r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q} e
++#
++#            assert {[$first dbsize] == 2}
++#            assert {[$second dbsize] == 15}
++#            assert {[$first exists c] == 1}
++#            assert {[$first exists d] == 1}
++#        }
++#    }
++#
++#    test {MIGRATE AUTH: correct and wrong password cases} {
++#        set first [srv 0 client]
++#        r del list
++#        r lpush list a b c d
++#        start_server {tags {"repl"}} {
++#            set second [srv 0 client]
++#            set second_host [srv 0 host]
++#            set second_port [srv 0 port]
++#            $second config set requirepass foobar
++#            $second auth foobar
++#
++#            assert {[$first exists list] == 1}
++#            assert {[$second exists list] == 0}
++#            set ret [r -1 migrate $second_host $second_port list 9 5000 AUTH foobar]
++#            assert {$ret eq {OK}}
++#            assert {[$second exists list] == 1}
++#            assert {[$second lrange list 0 -1] eq {d c b a}}
++#
++#            r -1 lpush list a b c d
++#            $second config set requirepass foobar2
++#            catch {r -1 migrate $second_host $second_port list 9 5000 AUTH foobar} err
++#            assert_match {*invalid password*} $err
++#        }
++#    }
+ }
+diff --git a/tests/unit/expire.tcl b/tests/unit/expire.tcl
+index de24eabed..533eca9ac 100644
+--- a/tests/unit/expire.tcl
++++ b/tests/unit/expire.tcl
+@@ -7,7 +7,7 @@ start_server {tags {"expire"}} {
+         set v4 [r ttl x]
+         r expire x 2
+         list $v1 $v2 $v3 $v4
+-    } {1 [45] 1 10}
++    } {1 [45] 1 [19-]0}
+ 
+     test {EXPIRE - It should be still possible to read 'x'} {
+         r get x
+@@ -22,11 +22,11 @@ start_server {tags {"expire"}} {
+ 
+     test {EXPIRE - write on expire should work} {
+         r del x
+-        r lpush x foo
++        r set x foo
+         r expire x 1000
+-        r lpush x bar
+-        r lrange x 0 -1
+-    } {bar foo}
++        r set x bar
++        r get x
++    } {bar}
+ 
+     test {EXPIREAT - Check for EXPIRE alike behavior} {
+         r del x
+@@ -56,16 +56,16 @@ start_server {tags {"expire"}} {
+         } {}
+     }
+ 
+-    test {SETEX - Wrong time parameter} {
+-        catch {r setex z -10 foo} e
+-        set _ $e
+-    } {*invalid expire*}
++    #test {SETEX - Wrong time parameter} {
++    #    catch {r setex z -10 foo} e
++    #    set _ $e
++    #} {*invalid expire*}
+ 
+     test {PERSIST can undo an EXPIRE} {
+         r set x foo
+         r expire x 50
+         list [r ttl x] [r persist x] [r ttl x] [r get x]
+-    } {50 1 -1 foo}
++    } {[45][90] 1 -1 foo}
+ 
+     test {PERSIST returns 0 against non existing or non volatile keys} {
+         r set x foo
+@@ -146,47 +146,47 @@ start_server {tags {"expire"}} {
+         list [r ttl x] [r pttl x]
+     } {-2 -2}
+ 
+-    test {Redis should actively expire keys incrementally} {
+-        r flushdb
+-        r psetex key1 500 a
+-        r psetex key2 500 a
+-        r psetex key3 500 a
+-        set size1 [r dbsize]
+-        # Redis expires random keys ten times every second so we are
+-        # fairly sure that all the three keys should be evicted after
+-        # one second.
+-        after 1000
+-        set size2 [r dbsize]
+-        list $size1 $size2
+-    } {3 0}
+-
+-    test {Redis should lazy expire keys} {
+-        r flushdb
+-        r debug set-active-expire 0
+-        r psetex key1 500 a
+-        r psetex key2 500 a
+-        r psetex key3 500 a
+-        set size1 [r dbsize]
+-        # Redis expires random keys ten times every second so we are
+-        # fairly sure that all the three keys should be evicted after
+-        # one second.
+-        after 1000
+-        set size2 [r dbsize]
+-        r mget key1 key2 key3
+-        set size3 [r dbsize]
+-        r debug set-active-expire 1
+-        list $size1 $size2 $size3
+-    } {3 3 0}
+-
+-    test {EXPIRE should not resurrect keys (issue #1026)} {
+-        r debug set-active-expire 0
+-        r set foo bar
+-        r pexpire foo 500
+-        after 1000
+-        r expire foo 10
+-        r debug set-active-expire 1
+-        r exists foo
+-    } {0}
++#    test {Redis should actively expire keys incrementally} {
++#        r flushdb
++#        r psetex key1 500 a
++#        r psetex key2 500 a
++#        r psetex key3 500 a
++#        set size1 [r dbsize]
++#        # Redis expires random keys ten times every second so we are
++#        # fairly sure that all the three keys should be evicted after
++#        # one second.
++#        after 1000
++#        set size2 [r dbsize]
++#        list $size1 $size2
++#    } {3 0}
++
++ #   test {Redis should lazy expire keys} {
++ #       r flushdb
++ #       r debug set-active-expire 0
++ #       r psetex key1 500 a
++ #       r psetex key2 500 a
++ #       r psetex key3 500 a
++ #       set size1 [r dbsize]
++ #       # Redis expires random keys ten times every second so we are
++ #       # fairly sure that all the three keys should be evicted after
++ #       # one second.
++ #       after 1000
++ #       set size2 [r dbsize]
++ #       r mget key1 key2 key3
++ #       set size3 [r dbsize]
++ #       r debug set-active-expire 1
++ #       list $size1 $size2 $size3
++ #   } {3 3 0}
++
++#    test {EXPIRE should not resurrect keys (issue #1026)} {
++#        r debug set-active-expire 0
++#        r set foo bar
++#        r pexpire foo 500
++#        after 1000
++#        r expire foo 10
++#        r debug set-active-expire 1
++#        r exists foo
++#    } {0}
+ 
+     test {5 keys in, 5 keys out} {
+         r flushdb
+@@ -205,18 +205,18 @@ start_server {tags {"expire"}} {
+         set e
+     } {*not an integer*}
+ 
+-    test {SET - use EX/PX option, TTL should not be reseted after loadaof} {
+-        r config set appendonly yes
+-        r set foo bar EX 100
+-        after 2000
+-        r debug loadaof
+-        set ttl [r ttl foo]
+-        assert {$ttl <= 98 && $ttl > 90}
+-
+-        r set foo bar PX 100000
+-        after 2000
+-        r debug loadaof
+-        set ttl [r ttl foo]
+-        assert {$ttl <= 98 && $ttl > 90}
+-    }
++#    test {SET - use EX/PX option, TTL should not be reseted after loadaof} {
++#        r config set appendonly yes
++#        r set foo bar EX 100
++#        after 2000
++#        r debug loadaof
++#        set ttl [r ttl foo]
++#        assert {$ttl <= 98 && $ttl > 90}
++#
++#        r set foo bar PX 100000
++#        after 2000
++#        r debug loadaof
++#        set ttl [r ttl foo]
++#        assert {$ttl <= 98 && $ttl > 90}
++#    }
+ }
+diff --git a/tests/unit/pubsub.tcl b/tests/unit/pubsub.tcl
+index 9c7a43bf0..16173b654 100644
+--- a/tests/unit/pubsub.tcl
++++ b/tests/unit/pubsub.tcl
+@@ -107,6 +107,7 @@ start_server {tags {"pubsub"}} {
+         set rd1 [redis_deferring_client]
+         assert_equal {1 2 3} [subscribe $rd1 {chan1 chan2 chan3}]
+         unsubscribe $rd1
++        after 500
+         assert_equal 0 [r publish chan1 hello]
+         assert_equal 0 [r publish chan2 hello]
+         assert_equal 0 [r publish chan3 hello]
+@@ -180,6 +181,7 @@ start_server {tags {"pubsub"}} {
+         set rd1 [redis_deferring_client]
+         assert_equal {1 2 3} [psubscribe $rd1 {chan1.* chan2.* chan3.*}]
+         punsubscribe $rd1
++        after 500
+         assert_equal 0 [r publish chan1.hi hello]
+         assert_equal 0 [r publish chan2.hi hello]
+         assert_equal 0 [r publish chan3.hi hello]
+@@ -223,168 +225,168 @@ start_server {tags {"pubsub"}} {
+         concat $reply1 $reply2
+     } {punsubscribe {} 0 unsubscribe {} 0}
+ 
+-    ### Keyspace events notification tests
+-
+-    test "Keyspace notifications: we receive keyspace notifications" {
+-        r config set notify-keyspace-events KA
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        assert_equal {pmessage * __keyspace@9__:foo set} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: we receive keyevent notifications" {
+-        r config set notify-keyspace-events EA
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        assert_equal {pmessage * __keyevent@9__:set foo} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: we can receive both kind of events" {
+-        r config set notify-keyspace-events KEA
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        assert_equal {pmessage * __keyspace@9__:foo set} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:set foo} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: we are able to mask events" {
+-        r config set notify-keyspace-events KEl
+-        r del mylist
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        r lpush mylist a
+-        # No notification for set, because only list commands are enabled.
+-        assert_equal {pmessage * __keyspace@9__:mylist lpush} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:lpush mylist} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: general events test" {
+-        r config set notify-keyspace-events KEg
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        r expire foo 1
+-        r del foo
+-        assert_equal {pmessage * __keyspace@9__:foo expire} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:expire foo} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:foo del} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:del foo} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: list events test" {
+-        r config set notify-keyspace-events KEl
+-        r del mylist
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r lpush mylist a
+-        r rpush mylist a
+-        r rpop mylist
+-        assert_equal {pmessage * __keyspace@9__:mylist lpush} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:lpush mylist} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:mylist rpush} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:rpush mylist} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:mylist rpop} [$rd1 read]
+-        assert_equal {pmessage * __keyevent@9__:rpop mylist} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: set events test" {
+-        r config set notify-keyspace-events Ks
+-        r del myset
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r sadd myset a b c d
+-        r srem myset x
+-        r sadd myset x y z
+-        r srem myset x
+-        assert_equal {pmessage * __keyspace@9__:myset sadd} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:myset sadd} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:myset srem} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: zset events test" {
+-        r config set notify-keyspace-events Kz
+-        r del myzset
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r zadd myzset 1 a 2 b
+-        r zrem myzset x
+-        r zadd myzset 3 x 4 y 5 z
+-        r zrem myzset x
+-        assert_equal {pmessage * __keyspace@9__:myzset zadd} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:myzset zadd} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:myzset zrem} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: hash events test" {
+-        r config set notify-keyspace-events Kh
+-        r del myhash
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r hmset myhash yes 1 no 0
+-        r hincrby myhash yes 10
+-        assert_equal {pmessage * __keyspace@9__:myhash hset} [$rd1 read]
+-        assert_equal {pmessage * __keyspace@9__:myhash hincrby} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: expired events (triggered expire)" {
+-        r config set notify-keyspace-events Ex
+-        r del foo
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r psetex foo 100 1
+-        wait_for_condition 50 100 {
+-            [r exists foo] == 0
+-        } else {
+-            fail "Key does not expire?!"
+-        }
+-        assert_equal {pmessage * __keyevent@9__:expired foo} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: expired events (background expire)" {
+-        r config set notify-keyspace-events Ex
+-        r del foo
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r psetex foo 100 1
+-        assert_equal {pmessage * __keyevent@9__:expired foo} [$rd1 read]
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: evicted events" {
+-        r config set notify-keyspace-events Ee
+-        r config set maxmemory-policy allkeys-lru
+-        r flushdb
+-        set rd1 [redis_deferring_client]
+-        assert_equal {1} [psubscribe $rd1 *]
+-        r set foo bar
+-        r config set maxmemory 1
+-        assert_equal {pmessage * __keyevent@9__:evicted foo} [$rd1 read]
+-        r config set maxmemory 0
+-        $rd1 close
+-    }
+-
+-    test "Keyspace notifications: test CONFIG GET/SET of event flags" {
+-        r config set notify-keyspace-events gKE
+-        assert_equal {gKE} [lindex [r config get notify-keyspace-events] 1]
+-        r config set notify-keyspace-events {$lshzxeKE}
+-        assert_equal {$lshzxeKE} [lindex [r config get notify-keyspace-events] 1]
+-        r config set notify-keyspace-events KA
+-        assert_equal {AK} [lindex [r config get notify-keyspace-events] 1]
+-        r config set notify-keyspace-events EA
+-        assert_equal {AE} [lindex [r config get notify-keyspace-events] 1]
+-    }
++#    ### Keyspace events notification tests
++#
++#    test "Keyspace notifications: we receive keyspace notifications" {
++#        r config set notify-keyspace-events KA
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        assert_equal {pmessage * __keyspace@9__:foo set} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: we receive keyevent notifications" {
++#        r config set notify-keyspace-events EA
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        assert_equal {pmessage * __keyevent@9__:set foo} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: we can receive both kind of events" {
++#        r config set notify-keyspace-events KEA
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        assert_equal {pmessage * __keyspace@9__:foo set} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:set foo} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: we are able to mask events" {
++#        r config set notify-keyspace-events KEl
++#        r del mylist
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        r lpush mylist a
++#        # No notification for set, because only list commands are enabled.
++#        assert_equal {pmessage * __keyspace@9__:mylist lpush} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:lpush mylist} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: general events test" {
++#        r config set notify-keyspace-events KEg
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        r expire foo 1
++#        r del foo
++#        assert_equal {pmessage * __keyspace@9__:foo expire} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:expire foo} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:foo del} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:del foo} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: list events test" {
++#        r config set notify-keyspace-events KEl
++#        r del mylist
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r lpush mylist a
++#        r rpush mylist a
++#        r rpop mylist
++#        assert_equal {pmessage * __keyspace@9__:mylist lpush} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:lpush mylist} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:mylist rpush} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:rpush mylist} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:mylist rpop} [$rd1 read]
++#        assert_equal {pmessage * __keyevent@9__:rpop mylist} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: set events test" {
++#        r config set notify-keyspace-events Ks
++#        r del myset
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r sadd myset a b c d
++#        r srem myset x
++#        r sadd myset x y z
++#        r srem myset x
++#        assert_equal {pmessage * __keyspace@9__:myset sadd} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:myset sadd} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:myset srem} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: zset events test" {
++#        r config set notify-keyspace-events Kz
++#        r del myzset
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r zadd myzset 1 a 2 b
++#        r zrem myzset x
++#        r zadd myzset 3 x 4 y 5 z
++#        r zrem myzset x
++#        assert_equal {pmessage * __keyspace@9__:myzset zadd} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:myzset zadd} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:myzset zrem} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: hash events test" {
++#        r config set notify-keyspace-events Kh
++#        r del myhash
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r hmset myhash yes 1 no 0
++#        r hincrby myhash yes 10
++#        assert_equal {pmessage * __keyspace@9__:myhash hset} [$rd1 read]
++#        assert_equal {pmessage * __keyspace@9__:myhash hincrby} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: expired events (triggered expire)" {
++#        r config set notify-keyspace-events Ex
++#        r del foo
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r psetex foo 100 1
++#        wait_for_condition 50 100 {
++#            [r exists foo] == 0
++#        } else {
++#            fail "Key does not expire?!"
++#        }
++#        assert_equal {pmessage * __keyevent@9__:expired foo} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: expired events (background expire)" {
++#        r config set notify-keyspace-events Ex
++#        r del foo
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r psetex foo 100 1
++#        assert_equal {pmessage * __keyevent@9__:expired foo} [$rd1 read]
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: evicted events" {
++#        r config set notify-keyspace-events Ee
++#        r config set maxmemory-policy allkeys-lru
++#        r flushdb
++#        set rd1 [redis_deferring_client]
++#        assert_equal {1} [psubscribe $rd1 *]
++#        r set foo bar
++#        r config set maxmemory 1
++#        assert_equal {pmessage * __keyevent@9__:evicted foo} [$rd1 read]
++#        r config set maxmemory 0
++#        $rd1 close
++#    }
++#
++#    test "Keyspace notifications: test CONFIG GET/SET of event flags" {
++#        r config set notify-keyspace-events gKE
++#        assert_equal {gKE} [lindex [r config get notify-keyspace-events] 1]
++#        r config set notify-keyspace-events {$lshzxeKE}
++#        assert_equal {$lshzxeKE} [lindex [r config get notify-keyspace-events] 1]
++#        r config set notify-keyspace-events KA
++#        assert_equal {AK} [lindex [r config get notify-keyspace-events] 1]
++#        r config set notify-keyspace-events EA
++#        assert_equal {AE} [lindex [r config get notify-keyspace-events] 1]
++#    }
+ }
+diff --git a/tests/unit/quit.tcl b/tests/unit/quit.tcl
+index 4cf440abf..990513d50 100644
+--- a/tests/unit/quit.tcl
++++ b/tests/unit/quit.tcl
+@@ -16,17 +16,18 @@ start_server {tags {"quit"}} {
+     test "Pipelined commands after QUIT must not be executed" {
+         reconnect
+         r write [format_command quit]
+-        r write [format_command set foo bar]
++        r write [format_command set foox bar]
+         r flush
+         assert_equal OK [r read]
+         assert_error * {r read}
+ 
+         reconnect
+-        assert_equal {} [r get foo]
++        assert_equal {} [r get foox]
+     }
+ 
+     test "Pipelined commands after QUIT that exceed read buffer size" {
+         reconnect
++        r del foo
+         r write [format_command quit]
+         r write [format_command set foo [string repeat "x" 1024]]
+         r flush
+diff --git a/tests/unit/type/hash.tcl b/tests/unit/type/hash.tcl
+index d2c679d32..6d17de48b 100644
+--- a/tests/unit/type/hash.tcl
++++ b/tests/unit/type/hash.tcl
+@@ -252,10 +252,10 @@ start_server {tags {"hash"}} {
+         lappend rv [r hexists bighash nokey]
+     } {1 0 1 0}
+ 
+-    test {Is a ziplist encoded Hash promoted on big payload?} {
+-        r hset smallhash foo [string repeat a 1024]
+-        r debug object smallhash
+-    } {*hashtable*}
++    #test {Is a ziplist encoded Hash promoted on big payload?} {
++        #r hset smallhash foo [string repeat a 1024]
++        #r debug object smallhash
++    #} {*hashtable*}
+ 
+     test {HINCRBY against non existing database key} {
+         r del htest
+@@ -505,16 +505,16 @@ start_server {tags {"hash"}} {
+         }
+     }
+ 
+-    test {Stress test the hash ziplist -> hashtable encoding conversion} {
+-        r config set hash-max-ziplist-entries 32
+-        for {set j 0} {$j < 100} {incr j} {
+-            r del myhash
+-            for {set i 0} {$i < 64} {incr i} {
+-                r hset myhash [randomValue] [randomValue]
+-            }
+-            assert {[r object encoding myhash] eq {hashtable}}
+-        }
+-    }
++#    test {Stress test the hash ziplist -> hashtable encoding conversion} {
++#        r config set hash-max-ziplist-entries 32
++#        for {set j 0} {$j < 100} {incr j} {
++#            r del myhash
++#            for {set i 0} {$i < 64} {incr i} {
++#                r hset myhash [randomValue] [randomValue]
++#            }
++#            assert {[r object encoding myhash] eq {hashtable}}
++#        }
++#    }
+ 
+     # The following test can only be executed if we don't use Valgrind, and if
+     # we are using x86_64 architecture, because:
+diff --git a/tests/unit/type/set.tcl b/tests/unit/type/set.tcl
+index 7b467f1c4..21f0721c4 100644
+--- a/tests/unit/type/set.tcl
++++ b/tests/unit/type/set.tcl
+@@ -34,8 +34,8 @@ start_server {
+     }
+ 
+     test {SADD against non set} {
+-        r lpush mylist foo
+-        assert_error WRONGTYPE* {r sadd mylist bar}
++        r set mystring foo
++        assert_error WRONGTYPE* {r sadd mystring bar}
+     }
+ 
+     test "SADD a non-integer against an intset" {
+@@ -75,7 +75,7 @@ start_server {
+         assert_encoding hashtable mylargeintset
+         assert_encoding hashtable myhashset
+ 
+-        r debug reload
++        #r debug reload
+         assert_encoding intset myintset
+         assert_encoding hashtable mylargeintset
+         assert_encoding hashtable myhashset
+@@ -157,7 +157,7 @@ start_server {
+         }
+ 
+         test "SINTERSTORE with two sets, after a DEBUG RELOAD - $type" {
+-            r debug reload
++            #r debug reload
+             r sinterstore setres set1 set2
+             assert_encoding $type setres
+             assert_equal [list 195 196 197 198 199 $large] [lsort [r smembers setres]]
+diff --git a/tests/unit/type/string.tcl b/tests/unit/type/string.tcl
+index 7122fd987..2274c82cc 100644
+--- a/tests/unit/type/string.tcl
++++ b/tests/unit/type/string.tcl
+@@ -130,8 +130,8 @@ start_server {tags {"string"}} {
+     } {bar xyz}
+ 
+     test {MSET base case} {
+-        r mset x 10 y "foo bar" z "x x x x x x x\n\n\r\n"
+-        r mget x y z
++        r mset "{A}x" 10 "{A}y" "foo bar" "{A}z" "x x x x x x x\n\n\r\n"
++        r mget "{A}x" "{A}y" "{A}z"
+     } [list 10 {foo bar} "x x x x x x x\n\n\r\n"]
+ 
+     test {MSET wrong number of args} {
+@@ -140,11 +140,11 @@ start_server {tags {"string"}} {
+     } {*wrong number*}
+ 
+     test {MSETNX with already existent key} {
+-        list [r msetnx x1 xxx y2 yyy x 20] [r exists x1] [r exists y2]
++        list [r msetnx "{A}x1" xxx "{A}y2" yyy "{A}x" 20] [r exists "{A}x1"] [r exists "{A}y2"]
+     } {0 0 0}
+ 
+     test {MSETNX with not existing keys} {
+-        list [r msetnx x1 xxx y2 yyy] [r get x1] [r get y2]
++        list [r msetnx "{A}x1" xxx "{A}y2" yyy] [r get "{A}x1"] [r get "{A}y2"]
+     } {1 xxx yyy}
+ 
+     test "STRLEN against non-existing key" {
+@@ -188,11 +188,11 @@ start_server {tags {"string"}} {
+         assert_equal [binary format B* 00010011] [r get mykey]
+     }
+ 
+-    test "SETBIT against key with wrong type" {
+-        r del mykey
+-        r lpush mykey "foo"
+-        assert_error "WRONGTYPE*" {r setbit mykey 0 1}
+-    }
++#    test "SETBIT against key with wrong type" {
++#        r del mykey
++#        r lpush mykey "foo"
++#        assert_error "WRONGTYPE*" {r setbit mykey 0 1}
++#    }
+ 
+     test "SETBIT with out of range bit offset" {
+         r del mykey
+@@ -208,23 +208,23 @@ start_server {tags {"string"}} {
+         assert_error "*out of range*" {r setbit mykey 0 20}
+     }
+ 
+-    test "SETBIT fuzzing" {
+-        set str ""
+-        set len [expr 256*8]
+-        r del mykey
++#    test "SETBIT fuzzing" {
++#        set str ""
++#        set len [expr 256*8]
++#        r del mykey
+ 
+-        for {set i 0} {$i < 2000} {incr i} {
+-            set bitnum [randomInt $len]
+-            set bitval [randomInt 2]
+-            set fmt [format "%%-%ds%%d%%-s" $bitnum]
+-            set head [string range $str 0 $bitnum-1]
+-            set tail [string range $str $bitnum+1 end]
+-            set str [string map {" " 0} [format $fmt $head $bitval $tail]]
++#        for {set i 0} {$i < 2000} {incr i} {
++#            set bitnum [randomInt $len]
++#            set bitval [randomInt 2]
++#            set fmt [format "%%-%ds%%d%%-s" $bitnum]
++#            set head [string range $str 0 $bitnum-1]
++#            set tail [string range $str $bitnum+1 end]
++#            set str [string map {" " 0} [format $fmt $head $bitval $tail]]
+ 
+-            r setbit mykey $bitnum $bitval
+-            assert_equal [binary format B* $str] [r get mykey]
+-        }
+-    }
++#            r setbit mykey $bitnum $bitval
++#            assert_equal [binary format B* $str] [r get mykey]
++#        }
++#    }
+ 
+     test "GETBIT against non-existing key" {
+         r del mykey
+@@ -324,7 +324,7 @@ start_server {tags {"string"}} {
+ 
+     test "SETRANGE against key with wrong type" {
+         r del mykey
+-        r lpush mykey "foo"
++        r sadd mykey "foo"
+         assert_error "WRONGTYPE*" {r setrange mykey 0 bar}
+     }
+ 
+diff --git a/tests/unit/type/zset.tcl b/tests/unit/type/zset.tcl
+index a8c817f6e..d0809b581 100644
+--- a/tests/unit/type/zset.tcl
++++ b/tests/unit/type/zset.tcl
+@@ -7,22 +7,22 @@ start_server {tags {"zset"}} {
+     }
+ 
+     proc basics {encoding} {
+-        if {$encoding == "ziplist"} {
+-            r config set zset-max-ziplist-entries 128
+-            r config set zset-max-ziplist-value 64
+-        } elseif {$encoding == "skiplist"} {
+-            r config set zset-max-ziplist-entries 0
+-            r config set zset-max-ziplist-value 0
+-        } else {
+-            puts "Unknown sorted set encoding"
+-            exit
+-        }
+-
+-        test "Check encoding - $encoding" {
+-            r del ztmp
+-            r zadd ztmp 10 x
+-            assert_encoding $encoding ztmp
+-        }
++        # if {$encoding == "ziplist"} {
++        #     r config set zset-max-ziplist-entries 128
++        #     r config set zset-max-ziplist-value 64
++        # } elseif {$encoding == "skiplist"} {
++        #     r config set zset-max-ziplist-entries 0
++        #     r config set zset-max-ziplist-value 0
++        # } else {
++        #     puts "Unknown sorted set encoding"
++        #     exit
++        # }
++
++        # test "Check encoding - $encoding" {
++        #     r del ztmp
++        #     r zadd ztmp 10 x
++        #     assert_encoding $encoding ztmp
++        # }
+ 
+         test "ZSET basic ZADD and score update - $encoding" {
+             r del ztmp
+@@ -40,7 +40,7 @@ start_server {tags {"zset"}} {
+         }
+ 
+         test "ZSET element can't be set to NaN with ZINCRBY" {
+-            assert_error "*not*float*" {r zadd myzset nan abc}
++            assert_error "*not*float*" {r zincrby myzset nan abc}
+         }
+ 
+         test "ZADD with options syntax error with incomplete pair" {
+@@ -257,10 +257,10 @@ start_server {tags {"zset"}} {
+             assert_equal 1 [r zrank zranktmp y]
+             assert_equal 2 [r zrank zranktmp z]
+             assert_equal "" [r zrank zranktmp foo]
+-            assert_equal 2 [r zrevrank zranktmp x]
+-            assert_equal 1 [r zrevrank zranktmp y]
+-            assert_equal 0 [r zrevrank zranktmp z]
+-            assert_equal "" [r zrevrank zranktmp foo]
++            # assert_equal 2 [r zrevrank zranktmp x]
++            # assert_equal 1 [r zrevrank zranktmp y]
++            # assert_equal 0 [r zrevrank zranktmp z]
++            # assert_equal "" [r zrevrank zranktmp foo]
+         }
+ 
+         test "ZRANK - after deletion - $encoding" {
+@@ -376,145 +376,145 @@ start_server {tags {"zset"}} {
+             assert_equal {d 3 c 2} [r zrevrangebyscore zset 5 2 LIMIT 2 3 WITHSCORES]
+         }
+ 
+-        test "ZRANGEBYSCORE with non-value min or max" {
+-            assert_error "*not*float*" {r zrangebyscore fooz str 1}
+-            assert_error "*not*float*" {r zrangebyscore fooz 1 str}
+-            assert_error "*not*float*" {r zrangebyscore fooz 1 NaN}
+-        }
+-
+-        proc create_default_lex_zset {} {
+-            create_zset zset {0 alpha 0 bar 0 cool 0 down
+-                              0 elephant 0 foo 0 great 0 hill
+-                              0 omega}
+-        }
+-
+-        test "ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics" {
+-            create_default_lex_zset
+-
+-            # inclusive range
+-            assert_equal {alpha bar cool} [r zrangebylex zset - \[cool]
+-            assert_equal {bar cool down} [r zrangebylex zset \[bar \[down]
+-            assert_equal {great hill omega} [r zrangebylex zset \[g +]
+-            assert_equal {cool bar alpha} [r zrevrangebylex zset \[cool -]
+-            assert_equal {down cool bar} [r zrevrangebylex zset \[down \[bar]
+-            assert_equal {omega hill great foo elephant down} [r zrevrangebylex zset + \[d]
+-            assert_equal 3 [r zlexcount zset \[ele \[h]
+-
+-            # exclusive range
+-            assert_equal {alpha bar} [r zrangebylex zset - (cool]
+-            assert_equal {cool} [r zrangebylex zset (bar (down]
+-            assert_equal {hill omega} [r zrangebylex zset (great +]
+-            assert_equal {bar alpha} [r zrevrangebylex zset (cool -]
+-            assert_equal {cool} [r zrevrangebylex zset (down (bar]
+-            assert_equal {omega hill} [r zrevrangebylex zset + (great]
+-            assert_equal 2 [r zlexcount zset (ele (great]
+-
+-            # inclusive and exclusive
+-            assert_equal {} [r zrangebylex zset (az (b]
+-            assert_equal {} [r zrangebylex zset (z +]
+-            assert_equal {} [r zrangebylex zset - \[aaaa]
+-            assert_equal {} [r zrevrangebylex zset \[elez \[elex]
+-            assert_equal {} [r zrevrangebylex zset (hill (omega]
+-        }
++        #test "ZRANGEBYSCORE with non-value min or max" {
++            #assert_error "*not*float*" {r zrangebyscore fooz str 1}
++            #assert_error "*not*float*" {r zrangebyscore fooz 1 str}
++        #    assert_error "*not*float*" {r zrangebyscore fooz 1 NaN}
++        #}
++
++        # proc create_default_lex_zset {} {
++        #     create_zset zset {0 alpha 0 bar 0 cool 0 down
++        #                       0 elephant 0 foo 0 great 0 hill
++        #                       0 omega}
++        # }
++
++        # test "ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics" {
++        #     create_default_lex_zset
++
++        #     # inclusive range
++        #     assert_equal {alpha bar cool} [r zrangebylex zset - \[cool]
++        #     assert_equal {bar cool down} [r zrangebylex zset \[bar \[down]
++        #     assert_equal {great hill omega} [r zrangebylex zset \[g +]
++        #     assert_equal {cool bar alpha} [r zrevrangebylex zset \[cool -]
++        #     assert_equal {down cool bar} [r zrevrangebylex zset \[down \[bar]
++        #     assert_equal {omega hill great foo elephant down} [r zrevrangebylex zset + \[d]
++        #     assert_equal 3 [r zlexcount zset \[ele \[h]
++
++        #     # exclusive range
++        #     assert_equal {alpha bar} [r zrangebylex zset - (cool]
++        #     assert_equal {cool} [r zrangebylex zset (bar (down]
++        #     assert_equal {hill omega} [r zrangebylex zset (great +]
++        #     assert_equal {bar alpha} [r zrevrangebylex zset (cool -]
++        #     assert_equal {cool} [r zrevrangebylex zset (down (bar]
++        #     assert_equal {omega hill} [r zrevrangebylex zset + (great]
++        #     assert_equal 2 [r zlexcount zset (ele (great]
++
++        #     # inclusive and exclusive
++        #     assert_equal {} [r zrangebylex zset (az (b]
++        #     assert_equal {} [r zrangebylex zset (z +]
++        #     assert_equal {} [r zrangebylex zset - \[aaaa]
++        #     assert_equal {} [r zrevrangebylex zset \[elez \[elex]
++        #     assert_equal {} [r zrevrangebylex zset (hill (omega]
++        # }
+         
+-        test "ZLEXCOUNT advanced" {
+-            create_default_lex_zset
++        # test "ZLEXCOUNT advanced" {
++        #     create_default_lex_zset
+     
+-            assert_equal 9 [r zlexcount zset - +]
+-            assert_equal 0 [r zlexcount zset + -]
+-            assert_equal 0 [r zlexcount zset + \[c]
+-            assert_equal 0 [r zlexcount zset \[c -]
+-            assert_equal 8 [r zlexcount zset \[bar +]
+-            assert_equal 5 [r zlexcount zset \[bar \[foo]
+-            assert_equal 4 [r zlexcount zset \[bar (foo]
+-            assert_equal 4 [r zlexcount zset (bar \[foo]
+-            assert_equal 3 [r zlexcount zset (bar (foo]
+-            assert_equal 5 [r zlexcount zset - (foo]
+-            assert_equal 1 [r zlexcount zset (maxstring +]
+-        }
+-
+-        test "ZRANGEBYSLEX with LIMIT" {
+-            create_default_lex_zset
+-            assert_equal {alpha bar} [r zrangebylex zset - \[cool LIMIT 0 2]
+-            assert_equal {bar cool} [r zrangebylex zset - \[cool LIMIT 1 2]
+-            assert_equal {} [r zrangebylex zset \[bar \[down LIMIT 0 0]
+-            assert_equal {} [r zrangebylex zset \[bar \[down LIMIT 2 0]
+-            assert_equal {bar} [r zrangebylex zset \[bar \[down LIMIT 0 1]
+-            assert_equal {cool} [r zrangebylex zset \[bar \[down LIMIT 1 1]
+-            assert_equal {bar cool down} [r zrangebylex zset \[bar \[down LIMIT 0 100]
+-            assert_equal {omega hill great foo elephant} [r zrevrangebylex zset + \[d LIMIT 0 5]
+-            assert_equal {omega hill great foo} [r zrevrangebylex zset + \[d LIMIT 0 4]
+-        }
+-
+-        test "ZRANGEBYLEX with invalid lex range specifiers" {
+-            assert_error "*not*string*" {r zrangebylex fooz foo bar}
+-            assert_error "*not*string*" {r zrangebylex fooz \[foo bar}
+-            assert_error "*not*string*" {r zrangebylex fooz foo \[bar}
+-            assert_error "*not*string*" {r zrangebylex fooz +x \[bar}
+-            assert_error "*not*string*" {r zrangebylex fooz -x \[bar}
+-        }
+-
+-        test "ZREMRANGEBYSCORE basics" {
+-            proc remrangebyscore {min max} {
+-                create_zset zset {1 a 2 b 3 c 4 d 5 e}
+-                assert_equal 1 [r exists zset]
+-                r zremrangebyscore zset $min $max
+-            }
+-
+-            # inner range
+-            assert_equal 3 [remrangebyscore 2 4]
+-            assert_equal {a e} [r zrange zset 0 -1]
+-
+-            # start underflow
+-            assert_equal 1 [remrangebyscore -10 1]
+-            assert_equal {b c d e} [r zrange zset 0 -1]
+-
+-            # end overflow
+-            assert_equal 1 [remrangebyscore 5 10]
+-            assert_equal {a b c d} [r zrange zset 0 -1]
+-
+-            # switch min and max
+-            assert_equal 0 [remrangebyscore 4 2]
+-            assert_equal {a b c d e} [r zrange zset 0 -1]
+-
+-            # -inf to mid
+-            assert_equal 3 [remrangebyscore -inf 3]
+-            assert_equal {d e} [r zrange zset 0 -1]
+-
+-            # mid to +inf
+-            assert_equal 3 [remrangebyscore 3 +inf]
+-            assert_equal {a b} [r zrange zset 0 -1]
+-
+-            # -inf to +inf
+-            assert_equal 5 [remrangebyscore -inf +inf]
+-            assert_equal {} [r zrange zset 0 -1]
+-
+-            # exclusive min
+-            assert_equal 4 [remrangebyscore (1 5]
+-            assert_equal {a} [r zrange zset 0 -1]
+-            assert_equal 3 [remrangebyscore (2 5]
+-            assert_equal {a b} [r zrange zset 0 -1]
+-
+-            # exclusive max
+-            assert_equal 4 [remrangebyscore 1 (5]
+-            assert_equal {e} [r zrange zset 0 -1]
+-            assert_equal 3 [remrangebyscore 1 (4]
+-            assert_equal {d e} [r zrange zset 0 -1]
+-
+-            # exclusive min and max
+-            assert_equal 3 [remrangebyscore (1 (5]
+-            assert_equal {a e} [r zrange zset 0 -1]
+-
+-            # destroy when empty
+-            assert_equal 5 [remrangebyscore 1 5]
+-            assert_equal 0 [r exists zset]
+-        }
+-
+-        test "ZREMRANGEBYSCORE with non-value min or max" {
+-            assert_error "*not*float*" {r zremrangebyscore fooz str 1}
+-            assert_error "*not*float*" {r zremrangebyscore fooz 1 str}
+-            assert_error "*not*float*" {r zremrangebyscore fooz 1 NaN}
+-        }
++        #     assert_equal 9 [r zlexcount zset - +]
++        #     assert_equal 0 [r zlexcount zset + -]
++        #     assert_equal 0 [r zlexcount zset + \[c]
++        #     assert_equal 0 [r zlexcount zset \[c -]
++        #     assert_equal 8 [r zlexcount zset \[bar +]
++        #     assert_equal 5 [r zlexcount zset \[bar \[foo]
++        #     assert_equal 4 [r zlexcount zset \[bar (foo]
++        #     assert_equal 4 [r zlexcount zset (bar \[foo]
++        #     assert_equal 3 [r zlexcount zset (bar (foo]
++        #     assert_equal 5 [r zlexcount zset - (foo]
++        #     assert_equal 1 [r zlexcount zset (maxstring +]
++        # }
++
++        # test "ZRANGEBYSLEX with LIMIT" {
++        #     create_default_lex_zset
++        #     assert_equal {alpha bar} [r zrangebylex zset - \[cool LIMIT 0 2]
++        #     assert_equal {bar cool} [r zrangebylex zset - \[cool LIMIT 1 2]
++        #     assert_equal {} [r zrangebylex zset \[bar \[down LIMIT 0 0]
++        #     assert_equal {} [r zrangebylex zset \[bar \[down LIMIT 2 0]
++        #     assert_equal {bar} [r zrangebylex zset \[bar \[down LIMIT 0 1]
++        #     assert_equal {cool} [r zrangebylex zset \[bar \[down LIMIT 1 1]
++        #     assert_equal {bar cool down} [r zrangebylex zset \[bar \[down LIMIT 0 100]
++        #     assert_equal {omega hill great foo elephant} [r zrevrangebylex zset + \[d LIMIT 0 5]
++        #     assert_equal {omega hill great foo} [r zrevrangebylex zset + \[d LIMIT 0 4]
++        # }
++
++        # test "ZRANGEBYLEX with invalid lex range specifiers" {
++        #     assert_error "*not*string*" {r zrangebylex fooz foo bar}
++        #     assert_error "*not*string*" {r zrangebylex fooz \[foo bar}
++        #     assert_error "*not*string*" {r zrangebylex fooz foo \[bar}
++        #     assert_error "*not*string*" {r zrangebylex fooz +x \[bar}
++        #     assert_error "*not*string*" {r zrangebylex fooz -x \[bar}
++        # }
++
++        # test "ZREMRANGEBYSCORE basics" {
++        #     proc remrangebyscore {min max} {
++        #         create_zset zset {1 a 2 b 3 c 4 d 5 e}
++        #         assert_equal 1 [r exists zset]
++        #         r zremrangebyscore zset $min $max
++        #     }
++
++        #     # inner range
++        #     assert_equal 3 [remrangebyscore 2 4]
++        #     assert_equal {a e} [r zrange zset 0 -1]
++
++        #     # start underflow
++        #     assert_equal 1 [remrangebyscore -10 1]
++        #     assert_equal {b c d e} [r zrange zset 0 -1]
++
++        #     # end overflow
++        #     assert_equal 1 [remrangebyscore 5 10]
++        #     assert_equal {a b c d} [r zrange zset 0 -1]
++
++        #     # switch min and max
++        #     assert_equal 0 [remrangebyscore 4 2]
++        #     assert_equal {a b c d e} [r zrange zset 0 -1]
++
++        #     # -inf to mid
++        #     assert_equal 3 [remrangebyscore -inf 3]
++        #     assert_equal {d e} [r zrange zset 0 -1]
++
++        #     # mid to +inf
++        #     assert_equal 3 [remrangebyscore 3 +inf]
++        #     assert_equal {a b} [r zrange zset 0 -1]
++
++        #     # -inf to +inf
++        #     assert_equal 5 [remrangebyscore -inf +inf]
++        #     assert_equal {} [r zrange zset 0 -1]
++
++        #     # exclusive min
++        #     assert_equal 4 [remrangebyscore (1 5]
++        #     assert_equal {a} [r zrange zset 0 -1]
++        #     assert_equal 3 [remrangebyscore (2 5]
++        #     assert_equal {a b} [r zrange zset 0 -1]
++
++        #     # exclusive max
++        #     assert_equal 4 [remrangebyscore 1 (5]
++        #     assert_equal {e} [r zrange zset 0 -1]
++        #     assert_equal 3 [remrangebyscore 1 (4]
++        #     assert_equal {d e} [r zrange zset 0 -1]
++
++        #     # exclusive min and max
++        #     assert_equal 3 [remrangebyscore (1 (5]
++        #     assert_equal {a e} [r zrange zset 0 -1]
++
++        #     # destroy when empty
++        #     assert_equal 5 [remrangebyscore 1 5]
++        #     assert_equal 0 [r exists zset]
++        # }
++
++        # test "ZREMRANGEBYSCORE with non-value min or max" {
++        #     assert_error "*not*float*" {r zremrangebyscore fooz str 1}
++        #     assert_error "*not*float*" {r zremrangebyscore fooz 1 str}
++        #     assert_error "*not*float*" {r zremrangebyscore fooz 1 NaN}
++        # }
+ 
+         test "ZREMRANGEBYRANK basics" {
+             proc remrangebyrank {min max} {
+@@ -548,257 +548,257 @@ start_server {tags {"zset"}} {
+             assert_equal 0 [r exists zset]
+         }
+ 
+-        test "ZUNIONSTORE against non-existing key doesn't set destination - $encoding" {
+-            r del zseta
+-            assert_equal 0 [r zunionstore dst_key 1 zseta]
+-            assert_equal 0 [r exists dst_key]
+-        }
+-
+-        test "ZUNIONSTORE with empty set - $encoding" {
+-            r del zseta zsetb
+-            r zadd zseta 1 a
+-            r zadd zseta 2 b
+-            r zunionstore zsetc 2 zseta zsetb
+-            r zrange zsetc 0 -1 withscores
+-        } {a 1 b 2}
+-
+-        test "ZUNIONSTORE basics - $encoding" {
+-            r del zseta zsetb zsetc
+-            r zadd zseta 1 a
+-            r zadd zseta 2 b
+-            r zadd zseta 3 c
+-            r zadd zsetb 1 b
+-            r zadd zsetb 2 c
+-            r zadd zsetb 3 d
+-
+-            assert_equal 4 [r zunionstore zsetc 2 zseta zsetb]
+-            assert_equal {a 1 b 3 d 3 c 5} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZUNIONSTORE with weights - $encoding" {
+-            assert_equal 4 [r zunionstore zsetc 2 zseta zsetb weights 2 3]
+-            assert_equal {a 2 b 7 d 9 c 12} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZUNIONSTORE with a regular set and weights - $encoding" {
+-            r del seta
+-            r sadd seta a
+-            r sadd seta b
+-            r sadd seta c
+-
+-            assert_equal 4 [r zunionstore zsetc 2 seta zsetb weights 2 3]
+-            assert_equal {a 2 b 5 c 8 d 9} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZUNIONSTORE with AGGREGATE MIN - $encoding" {
+-            assert_equal 4 [r zunionstore zsetc 2 zseta zsetb aggregate min]
+-            assert_equal {a 1 b 1 c 2 d 3} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZUNIONSTORE with AGGREGATE MAX - $encoding" {
+-            assert_equal 4 [r zunionstore zsetc 2 zseta zsetb aggregate max]
+-            assert_equal {a 1 b 2 c 3 d 3} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZINTERSTORE basics - $encoding" {
+-            assert_equal 2 [r zinterstore zsetc 2 zseta zsetb]
+-            assert_equal {b 3 c 5} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZINTERSTORE with weights - $encoding" {
+-            assert_equal 2 [r zinterstore zsetc 2 zseta zsetb weights 2 3]
+-            assert_equal {b 7 c 12} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZINTERSTORE with a regular set and weights - $encoding" {
+-            r del seta
+-            r sadd seta a
+-            r sadd seta b
+-            r sadd seta c
+-            assert_equal 2 [r zinterstore zsetc 2 seta zsetb weights 2 3]
+-            assert_equal {b 5 c 8} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZINTERSTORE with AGGREGATE MIN - $encoding" {
+-            assert_equal 2 [r zinterstore zsetc 2 zseta zsetb aggregate min]
+-            assert_equal {b 1 c 2} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        test "ZINTERSTORE with AGGREGATE MAX - $encoding" {
+-            assert_equal 2 [r zinterstore zsetc 2 zseta zsetb aggregate max]
+-            assert_equal {b 2 c 3} [r zrange zsetc 0 -1 withscores]
+-        }
+-
+-        foreach cmd {ZUNIONSTORE ZINTERSTORE} {
+-            test "$cmd with +inf/-inf scores - $encoding" {
+-                r del zsetinf1 zsetinf2
+-
+-                r zadd zsetinf1 +inf key
+-                r zadd zsetinf2 +inf key
+-                r $cmd zsetinf3 2 zsetinf1 zsetinf2
+-                assert_equal inf [r zscore zsetinf3 key]
+-
+-                r zadd zsetinf1 -inf key
+-                r zadd zsetinf2 +inf key
+-                r $cmd zsetinf3 2 zsetinf1 zsetinf2
+-                assert_equal 0 [r zscore zsetinf3 key]
+-
+-                r zadd zsetinf1 +inf key
+-                r zadd zsetinf2 -inf key
+-                r $cmd zsetinf3 2 zsetinf1 zsetinf2
+-                assert_equal 0 [r zscore zsetinf3 key]
+-
+-                r zadd zsetinf1 -inf key
+-                r zadd zsetinf2 -inf key
+-                r $cmd zsetinf3 2 zsetinf1 zsetinf2
+-                assert_equal -inf [r zscore zsetinf3 key]
+-            }
+-
+-            test "$cmd with NaN weights $encoding" {
+-                r del zsetinf1 zsetinf2
+-
+-                r zadd zsetinf1 1.0 key
+-                r zadd zsetinf2 1.0 key
+-                assert_error "*weight*not*float*" {
+-                    r $cmd zsetinf3 2 zsetinf1 zsetinf2 weights nan nan
+-                }
+-            }
+-        }
+-
+-        test "Basic ZPOP with a single key - $encoding" {
+-            r del zset
+-            assert_equal {} [r zpopmin zset]
+-            create_zset zset {-1 a 1 b 2 c 3 d 4 e}
+-            assert_equal {a -1} [r zpopmin zset]
+-            assert_equal {b 1} [r zpopmin zset]
+-            assert_equal {e 4} [r zpopmax zset]
+-            assert_equal {d 3} [r zpopmax zset]
+-            assert_equal {c 2} [r zpopmin zset]
+-            assert_equal 0 [r exists zset]
+-            r set foo bar
+-            assert_error "*WRONGTYPE*" {r zpopmin foo}
+-        }
+-
+-        test "ZPOP with count - $encoding" {
+-            r del z1 z2 z3 foo
+-            r set foo bar
+-            assert_equal {} [r zpopmin z1 2]
+-            assert_error "*WRONGTYPE*" {r zpopmin foo 2}
+-            create_zset z1 {0 a 1 b 2 c 3 d}
+-            assert_equal {a 0 b 1} [r zpopmin z1 2]
+-            assert_equal {d 3 c 2} [r zpopmax z1 2]
+-        }
+-
+-        test "BZPOP with a single existing sorted set - $encoding" {
+-            set rd [redis_deferring_client]
+-            create_zset zset {0 a 1 b 2 c}
+-
+-            $rd bzpopmin zset 5
+-            assert_equal {zset a 0} [$rd read]
+-            $rd bzpopmin zset 5
+-            assert_equal {zset b 1} [$rd read]
+-            $rd bzpopmax zset 5
+-            assert_equal {zset c 2} [$rd read]
+-            assert_equal 0 [r exists zset]
+-        }
+-
+-        test "BZPOP with multiple existing sorted sets - $encoding" {
+-            set rd [redis_deferring_client]
+-            create_zset z1 {0 a 1 b 2 c}
+-            create_zset z2 {3 d 4 e 5 f}
+-
+-            $rd bzpopmin z1 z2 5
+-            assert_equal {z1 a 0} [$rd read]
+-            $rd bzpopmax z1 z2 5
+-            assert_equal {z1 c 2} [$rd read]
+-            assert_equal 1 [r zcard z1]
+-            assert_equal 3 [r zcard z2]
+-
+-            $rd bzpopmax z2 z1 5
+-            assert_equal {z2 f 5} [$rd read]
+-            $rd bzpopmin z2 z1 5
+-            assert_equal {z2 d 3} [$rd read]
+-            assert_equal 1 [r zcard z1]
+-            assert_equal 1 [r zcard z2]
+-        }
+-
+-        test "BZPOP second sorted set has members - $encoding" {
+-            set rd [redis_deferring_client]
+-            r del z1
+-            create_zset z2 {3 d 4 e 5 f}
+-            $rd bzpopmax z1 z2 5
+-            assert_equal {z2 f 5} [$rd read]
+-            $rd bzpopmin z2 z1 5
+-            assert_equal {z2 d 3} [$rd read]
+-            assert_equal 0 [r zcard z1]
+-            assert_equal 1 [r zcard z2]
+-        }
+-    }
+-
+-    basics ziplist
++        # test "ZUNIONSTORE against non-existing key doesn't set destination - $encoding" {
++        #     r del zseta
++        #     assert_equal 0 [r zunionstore dst_key 1 zseta]
++        #     assert_equal 0 [r exists dst_key]
++        # }
++
++        # test "ZUNIONSTORE with empty set - $encoding" {
++        #     r del zseta zsetb
++        #     r zadd zseta 1 a
++        #     r zadd zseta 2 b
++        #     r zunionstore zsetc 2 zseta zsetb
++        #     r zrange zsetc 0 -1 withscores
++        # } {a 1 b 2}
++
++        # test "ZUNIONSTORE basics - $encoding" {
++        #     r del zseta zsetb zsetc
++        #     r zadd zseta 1 a
++        #     r zadd zseta 2 b
++        #     r zadd zseta 3 c
++        #     r zadd zsetb 1 b
++        #     r zadd zsetb 2 c
++        #     r zadd zsetb 3 d
++
++        #     assert_equal 4 [r zunionstore zsetc 2 zseta zsetb]
++        #     assert_equal {a 1 b 3 d 3 c 5} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZUNIONSTORE with weights - $encoding" {
++        #     assert_equal 4 [r zunionstore zsetc 2 zseta zsetb weights 2 3]
++        #     assert_equal {a 2 b 7 d 9 c 12} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZUNIONSTORE with a regular set and weights - $encoding" {
++        #     r del seta
++        #     r sadd seta a
++        #     r sadd seta b
++        #     r sadd seta c
++
++        #     assert_equal 4 [r zunionstore zsetc 2 seta zsetb weights 2 3]
++        #     assert_equal {a 2 b 5 c 8 d 9} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZUNIONSTORE with AGGREGATE MIN - $encoding" {
++        #     assert_equal 4 [r zunionstore zsetc 2 zseta zsetb aggregate min]
++        #     assert_equal {a 1 b 1 c 2 d 3} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZUNIONSTORE with AGGREGATE MAX - $encoding" {
++        #     assert_equal 4 [r zunionstore zsetc 2 zseta zsetb aggregate max]
++        #     assert_equal {a 1 b 2 c 3 d 3} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZINTERSTORE basics - $encoding" {
++        #     assert_equal 2 [r zinterstore zsetc 2 zseta zsetb]
++        #     assert_equal {b 3 c 5} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZINTERSTORE with weights - $encoding" {
++        #     assert_equal 2 [r zinterstore zsetc 2 zseta zsetb weights 2 3]
++        #     assert_equal {b 7 c 12} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZINTERSTORE with a regular set and weights - $encoding" {
++        #     r del seta
++        #     r sadd seta a
++        #     r sadd seta b
++        #     r sadd seta c
++        #     assert_equal 2 [r zinterstore zsetc 2 seta zsetb weights 2 3]
++        #     assert_equal {b 5 c 8} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZINTERSTORE with AGGREGATE MIN - $encoding" {
++        #     assert_equal 2 [r zinterstore zsetc 2 zseta zsetb aggregate min]
++        #     assert_equal {b 1 c 2} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # test "ZINTERSTORE with AGGREGATE MAX - $encoding" {
++        #     assert_equal 2 [r zinterstore zsetc 2 zseta zsetb aggregate max]
++        #     assert_equal {b 2 c 3} [r zrange zsetc 0 -1 withscores]
++        # }
++
++        # foreach cmd {ZUNIONSTORE ZINTERSTORE} {
++        #     test "$cmd with +inf/-inf scores - $encoding" {
++        #         r del zsetinf1 zsetinf2
++
++        #         r zadd zsetinf1 +inf key
++        #         r zadd zsetinf2 +inf key
++        #         r $cmd zsetinf3 2 zsetinf1 zsetinf2
++        #         assert_equal inf [r zscore zsetinf3 key]
++
++        #         r zadd zsetinf1 -inf key
++        #         r zadd zsetinf2 +inf key
++        #         r $cmd zsetinf3 2 zsetinf1 zsetinf2
++        #         assert_equal 0 [r zscore zsetinf3 key]
++
++        #         r zadd zsetinf1 +inf key
++        #         r zadd zsetinf2 -inf key
++        #         r $cmd zsetinf3 2 zsetinf1 zsetinf2
++        #         assert_equal 0 [r zscore zsetinf3 key]
++
++        #         r zadd zsetinf1 -inf key
++        #         r zadd zsetinf2 -inf key
++        #         r $cmd zsetinf3 2 zsetinf1 zsetinf2
++        #         assert_equal -inf [r zscore zsetinf3 key]
++        #     }
++
++        #     test "$cmd with NaN weights $encoding" {
++        #         r del zsetinf1 zsetinf2
++
++        #         r zadd zsetinf1 1.0 key
++        #         r zadd zsetinf2 1.0 key
++        #         assert_error "*weight*not*float*" {
++        #             r $cmd zsetinf3 2 zsetinf1 zsetinf2 weights nan nan
++        #         }
++        #     }
++        # }
++
++    #     test "Basic ZPOP with a single key - $encoding" {
++    #         r del zset
++    #         assert_equal {} [r zpopmin zset]
++    #         create_zset zset {-1 a 1 b 2 c 3 d 4 e}
++    #         assert_equal {a -1} [r zpopmin zset]
++    #         assert_equal {b 1} [r zpopmin zset]
++    #         assert_equal {e 4} [r zpopmax zset]
++    #         assert_equal {d 3} [r zpopmax zset]
++    #         assert_equal {c 2} [r zpopmin zset]
++    #         assert_equal 0 [r exists zset]
++    #         r set foo bar
++    #         assert_error "*WRONGTYPE*" {r zpopmin foo}
++    #     }
++
++    #     test "ZPOP with count - $encoding" {
++    #         r del z1 z2 z3 foo
++    #         r set foo bar
++    #         assert_equal {} [r zpopmin z1 2]
++    #         assert_error "*WRONGTYPE*" {r zpopmin foo 2}
++    #         create_zset z1 {0 a 1 b 2 c 3 d}
++    #         assert_equal {a 0 b 1} [r zpopmin z1 2]
++    #         assert_equal {d 3 c 2} [r zpopmax z1 2]
++    #     }
++
++    #     test "BZPOP with a single existing sorted set - $encoding" {
++    #         set rd [redis_deferring_client]
++    #         create_zset zset {0 a 1 b 2 c}
++
++    #         $rd bzpopmin zset 5
++    #         assert_equal {zset a 0} [$rd read]
++    #         $rd bzpopmin zset 5
++    #         assert_equal {zset b 1} [$rd read]
++    #         $rd bzpopmax zset 5
++    #         assert_equal {zset c 2} [$rd read]
++    #         assert_equal 0 [r exists zset]
++    #     }
++
++    #     test "BZPOP with multiple existing sorted sets - $encoding" {
++    #         set rd [redis_deferring_client]
++    #         create_zset z1 {0 a 1 b 2 c}
++    #         create_zset z2 {3 d 4 e 5 f}
++
++    #         $rd bzpopmin z1 z2 5
++    #         assert_equal {z1 a 0} [$rd read]
++    #         $rd bzpopmax z1 z2 5
++    #         assert_equal {z1 c 2} [$rd read]
++    #         assert_equal 1 [r zcard z1]
++    #         assert_equal 3 [r zcard z2]
++
++    #         $rd bzpopmax z2 z1 5
++    #         assert_equal {z2 f 5} [$rd read]
++    #         $rd bzpopmin z2 z1 5
++    #         assert_equal {z2 d 3} [$rd read]
++    #         assert_equal 1 [r zcard z1]
++    #         assert_equal 1 [r zcard z2]
++    #     }
++
++    #     test "BZPOP second sorted set has members - $encoding" {
++    #         set rd [redis_deferring_client]
++    #         r del z1
++    #         create_zset z2 {3 d 4 e 5 f}
++    #         $rd bzpopmax z1 z2 5
++    #         assert_equal {z2 f 5} [$rd read]
++    #         $rd bzpopmin z2 z1 5
++    #         assert_equal {z2 d 3} [$rd read]
++    #         assert_equal 0 [r zcard z1]
++    #         assert_equal 1 [r zcard z2]
++    #     }
++    # }
++
++    # basics ziplist
+     basics skiplist
+ 
+-    test {ZINTERSTORE regression with two sets, intset+hashtable} {
+-        r del seta setb setc
+-        r sadd set1 a
+-        r sadd set2 10
+-        r zinterstore set3 2 set1 set2
+-    } {0}
+-
+-    test {ZUNIONSTORE regression, should not create NaN in scores} {
+-        r zadd z -inf neginf
+-        r zunionstore out 1 z weights 0
+-        r zrange out 0 -1 withscores
+-    } {neginf 0}
+-
+-    test {ZINTERSTORE #516 regression, mixed sets and ziplist zsets} {
+-        r sadd one 100 101 102 103
+-        r sadd two 100 200 201 202
+-        r zadd three 1 500 1 501 1 502 1 503 1 100
+-        r zinterstore to_here 3 one two three WEIGHTS 0 0 1
+-        r zrange to_here 0 -1
+-    } {100}
+-
+-    test {ZUNIONSTORE result is sorted} {
+-        # Create two sets with common and not common elements, perform
+-        # the UNION, check that elements are still sorted.
+-        r del one two dest
+-        set cmd1 [list r zadd one]
+-        set cmd2 [list r zadd two]
+-        for {set j 0} {$j < 1000} {incr j} {
+-            lappend cmd1 [expr rand()] [randomInt 1000]
+-            lappend cmd2 [expr rand()] [randomInt 1000]
+-        }
+-        {*}$cmd1
+-        {*}$cmd2
+-        assert {[r zcard one] > 100}
+-        assert {[r zcard two] > 100}
+-        r zunionstore dest 2 one two
+-        set oldscore 0
+-        foreach {ele score} [r zrange dest 0 -1 withscores] {
+-            assert {$score >= $oldscore}
+-            set oldscore $score
+-        }
+-    }
++    # test {ZINTERSTORE regression with two sets, intset+hashtable} {
++    #     r del seta setb setc
++    #     r sadd set1 a
++    #     r sadd set2 10
++    #     r zinterstore set3 2 set1 set2
++    # } {0}
++
++    # test {ZUNIONSTORE regression, should not create NaN in scores} {
++    #     r zadd z -inf neginf
++    #     r zunionstore out 1 z weights 0
++    #     r zrange out 0 -1 withscores
++    # } {neginf 0}
++
++    # test {ZINTERSTORE #516 regression, mixed sets and ziplist zsets} {
++    #     r sadd one 100 101 102 103
++    #     r sadd two 100 200 201 202
++    #     r zadd three 1 500 1 501 1 502 1 503 1 100
++    #     r zinterstore to_here 3 one two three WEIGHTS 0 0 1
++    #     r zrange to_here 0 -1
++    # } {100}
++
++    # test {ZUNIONSTORE result is sorted} {
++    #     # Create two sets with common and not common elements, perform
++    #     # the UNION, check that elements are still sorted.
++    #     r del one two dest
++    #     set cmd1 [list r zadd one]
++    #     set cmd2 [list r zadd two]
++    #     for {set j 0} {$j < 1000} {incr j} {
++    #         lappend cmd1 [expr rand()] [randomInt 1000]
++    #         lappend cmd2 [expr rand()] [randomInt 1000]
++    #     }
++    #     {*}$cmd1
++    #     {*}$cmd2
++    #     assert {[r zcard one] > 100}
++    #     assert {[r zcard two] > 100}
++    #     r zunionstore dest 2 one two
++    #     set oldscore 0
++    #     foreach {ele score} [r zrange dest 0 -1 withscores] {
++    #         assert {$score >= $oldscore}
++    #         set oldscore $score
++    #     }
++    # }
+ 
+     test "ZSET commands don't accept the empty strings as valid score" {
+         assert_error "*not*float*" {r zadd myzset "" abc}
+     }
+ 
+     proc stressers {encoding} {
+-        if {$encoding == "ziplist"} {
+-            # Little extra to allow proper fuzzing in the sorting stresser
+-            r config set zset-max-ziplist-entries 256
+-            r config set zset-max-ziplist-value 64
+-            set elements 128
+-        } elseif {$encoding == "skiplist"} {
+-            r config set zset-max-ziplist-entries 0
+-            r config set zset-max-ziplist-value 0
+-            if {$::accurate} {set elements 1000} else {set elements 100}
+-        } else {
+-            puts "Unknown sorted set encoding"
+-            exit
+-        }
++        # if {$encoding == "ziplist"} {
++        #     # Little extra to allow proper fuzzing in the sorting stresser
++        #     r config set zset-max-ziplist-entries 256
++        #     r config set zset-max-ziplist-value 64
++        set elements 128
++        # } elseif {$encoding == "skiplist"} {
++        #     r config set zset-max-ziplist-entries 0
++        #     r config set zset-max-ziplist-value 0
++        #     if {$::accurate} {set elements 1000} else {set elements 100}
++        # } else {
++        #     puts "Unknown sorted set encoding"
++        #     exit
++        # }
+ 
+         test "ZSCORE - $encoding" {
+             r del zscoretest
+@@ -809,9 +809,11 @@ start_server {tags {"zset"}} {
+                 r zadd zscoretest $score $i
+             }
+ 
+-            assert_encoding $encoding zscoretest
++            # assert_encoding $encoding zscoretest
+             for {set i 0} {$i < $elements} {incr i} {
+-                assert_equal [lindex $aux $i] [r zscore zscoretest $i]
++                set expected [lindex $aux $i]
++                set actual [r zscore zscoretest $i]
++                assert {abs($expected - $actual) < 0.0000000000000001}
+             }
+         }
+ 
+@@ -824,10 +826,12 @@ start_server {tags {"zset"}} {
+                 r zadd zscoretest $score $i
+             }
+ 
+-            r debug reload
+-            assert_encoding $encoding zscoretest
++            # r debug reload
++            # assert_encoding $encoding zscoretest
+             for {set i 0} {$i < $elements} {incr i} {
+-                assert_equal [lindex $aux $i] [r zscore zscoretest $i]
++                 set expected [lindex $aux $i]
++                 set actual [r zscore zscoretest $i]
++                 assert {abs($expected - $actual) < 0.0000000000000001}
+             }
+         }
+ 
+@@ -867,7 +871,7 @@ start_server {tags {"zset"}} {
+                     lappend auxlist [lindex $x 1]
+                 }
+ 
+-                assert_encoding $encoding myzset
++                # assert_encoding $encoding myzset
+                 set fromredis [r zrange myzset 0 -1]
+                 set delta 0
+                 for {set i 0} {$i < [llength $fromredis]} {incr i} {
+@@ -886,7 +890,7 @@ start_server {tags {"zset"}} {
+                 r zadd zset [expr rand()] $i
+             }
+ 
+-            assert_encoding $encoding zset
++        #     assert_encoding $encoding zset
+             for {set i 0} {$i < 100} {incr i} {
+                 set min [expr rand()]
+                 set max [expr rand()]
+@@ -961,128 +965,128 @@ start_server {tags {"zset"}} {
+             assert_equal {} $err
+         }
+ 
+-        test "ZRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
+-            set lexset {}
+-            r del zset
+-            for {set j 0} {$j < $elements} {incr j} {
+-                set e [randstring 0 30 alpha]
+-                lappend lexset $e
+-                r zadd zset 0 $e
+-            }
+-            set lexset [lsort -unique $lexset]
+-            for {set j 0} {$j < 100} {incr j} {
+-                set min [randstring 0 30 alpha]
+-                set max [randstring 0 30 alpha]
+-                set mininc [randomInt 2]
+-                set maxinc [randomInt 2]
+-                if {$mininc} {set cmin "\[$min"} else {set cmin "($min"}
+-                if {$maxinc} {set cmax "\[$max"} else {set cmax "($max"}
+-                set rev [randomInt 2]
+-                if {$rev} {
+-                    set cmd zrevrangebylex
+-                } else {
+-                    set cmd zrangebylex
+-                }
+-
+-                # Make sure data is the same in both sides
+-                assert {[r zrange zset 0 -1] eq $lexset}
+-
+-                # Get the Redis output
+-                set output [r $cmd zset $cmin $cmax]
+-                if {$rev} {
+-                    set outlen [r zlexcount zset $cmax $cmin]
+-                } else {
+-                    set outlen [r zlexcount zset $cmin $cmax]
+-                }
+-
+-                # Compute the same output via Tcl
+-                set o {}
+-                set copy $lexset
+-                if {(!$rev && [string compare $min $max] > 0) ||
+-                    ($rev && [string compare $max $min] > 0)} {
+-                    # Empty output when ranges are inverted.
+-                } else {
+-                    if {$rev} {
+-                        # Invert the Tcl array using Redis itself.
+-                        set copy [r zrevrange zset 0 -1]
+-                        # Invert min / max as well
+-                        lassign [list $min $max $mininc $maxinc] \
+-                            max min maxinc mininc
+-                    }
+-                    foreach e $copy {
+-                        set mincmp [string compare $e $min]
+-                        set maxcmp [string compare $e $max]
+-                        if {
+-                             ($mininc && $mincmp >= 0 || !$mininc && $mincmp > 0)
+-                             &&
+-                             ($maxinc && $maxcmp <= 0 || !$maxinc && $maxcmp < 0)
+-                        } {
+-                            lappend o $e
+-                        }
+-                    }
+-                }
+-                assert {$o eq $output}
+-                assert {$outlen eq [llength $output]}
+-            }
+-        }
+-
+-        test "ZREMRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
+-            set lexset {}
+-            r del zset zsetcopy
+-            for {set j 0} {$j < $elements} {incr j} {
+-                set e [randstring 0 30 alpha]
+-                lappend lexset $e
+-                r zadd zset 0 $e
+-            }
+-            set lexset [lsort -unique $lexset]
+-            for {set j 0} {$j < 100} {incr j} {
+-                # Copy...
+-                r zunionstore zsetcopy 1 zset
+-                set lexsetcopy $lexset
+-
+-                set min [randstring 0 30 alpha]
+-                set max [randstring 0 30 alpha]
+-                set mininc [randomInt 2]
+-                set maxinc [randomInt 2]
+-                if {$mininc} {set cmin "\[$min"} else {set cmin "($min"}
+-                if {$maxinc} {set cmax "\[$max"} else {set cmax "($max"}
+-
+-                # Make sure data is the same in both sides
+-                assert {[r zrange zset 0 -1] eq $lexset}
+-
+-                # Get the range we are going to remove
+-                set torem [r zrangebylex zset $cmin $cmax]
+-                set toremlen [r zlexcount zset $cmin $cmax]
+-                r zremrangebylex zsetcopy $cmin $cmax
+-                set output [r zrange zsetcopy 0 -1]
+-
+-                # Remove the range with Tcl from the original list
+-                if {$toremlen} {
+-                    set first [lsearch -exact $lexsetcopy [lindex $torem 0]]
+-                    set last [expr {$first+$toremlen-1}]
+-                    set lexsetcopy [lreplace $lexsetcopy $first $last]
+-                }
+-                assert {$lexsetcopy eq $output}
+-            }
+-        }
+-
+-        test "ZSETs skiplist implementation backlink consistency test - $encoding" {
+-            set diff 0
+-            for {set j 0} {$j < $elements} {incr j} {
+-                r zadd myzset [expr rand()] "Element-$j"
+-                r zrem myzset "Element-[expr int(rand()*$elements)]"
+-            }
+-
+-            assert_encoding $encoding myzset
+-            set l1 [r zrange myzset 0 -1]
+-            set l2 [r zrevrange myzset 0 -1]
+-            for {set j 0} {$j < [llength $l1]} {incr j} {
+-                if {[lindex $l1 $j] ne [lindex $l2 end-$j]} {
+-                    incr diff
+-                }
+-            }
+-            assert_equal 0 $diff
+-        }
++        # test "ZRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
++        #     set lexset {}
++        #     r del zset
++        #     for {set j 0} {$j < $elements} {incr j} {
++        #         set e [randstring 0 30 alpha]
++        #         lappend lexset $e
++        #         r zadd zset 0 $e
++        #     }
++        #     set lexset [lsort -unique $lexset]
++        #     for {set j 0} {$j < 100} {incr j} {
++        #         set min [randstring 0 30 alpha]
++        #         set max [randstring 0 30 alpha]
++        #         set mininc [randomInt 2]
++        #         set maxinc [randomInt 2]
++        #         if {$mininc} {set cmin "\[$min"} else {set cmin "($min"}
++        #         if {$maxinc} {set cmax "\[$max"} else {set cmax "($max"}
++        #         set rev [randomInt 2]
++        #         if {$rev} {
++        #             set cmd zrevrangebylex
++        #         } else {
++        #             set cmd zrangebylex
++        #         }
++
++        #         # Make sure data is the same in both sides
++        #         assert {[r zrange zset 0 -1] eq $lexset}
++
++        #         # Get the Redis output
++        #         set output [r $cmd zset $cmin $cmax]
++        #         if {$rev} {
++        #             set outlen [r zlexcount zset $cmax $cmin]
++        #         } else {
++        #             set outlen [r zlexcount zset $cmin $cmax]
++        #         }
++
++        #         # Compute the same output via Tcl
++        #         set o {}
++        #         set copy $lexset
++        #         if {(!$rev && [string compare $min $max] > 0) ||
++        #             ($rev && [string compare $max $min] > 0)} {
++        #             # Empty output when ranges are inverted.
++        #         } else {
++        #             if {$rev} {
++        #                 # Invert the Tcl array using Redis itself.
++        #                 set copy [r zrevrange zset 0 -1]
++        #                 # Invert min / max as well
++        #                 lassign [list $min $max $mininc $maxinc] \
++        #                     max min maxinc mininc
++        #             }
++        #             foreach e $copy {
++        #                 set mincmp [string compare $e $min]
++        #                 set maxcmp [string compare $e $max]
++        #                 if {
++        #                      ($mininc && $mincmp >= 0 || !$mininc && $mincmp > 0)
++        #                      &&
++        #                      ($maxinc && $maxcmp <= 0 || !$maxinc && $maxcmp < 0)
++        #                 } {
++        #                     lappend o $e
++        #                 }
++        #             }
++        #         }
++        #         assert {$o eq $output}
++        #         assert {$outlen eq [llength $output]}
++        #     }
++        # }
++
++        # test "ZREMRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
++        #     set lexset {}
++        #     r del zset zsetcopy
++        #     for {set j 0} {$j < $elements} {incr j} {
++        #         set e [randstring 0 30 alpha]
++        #         lappend lexset $e
++        #         r zadd zset 0 $e
++        #     }
++        #     set lexset [lsort -unique $lexset]
++        #     for {set j 0} {$j < 100} {incr j} {
++        #         # Copy...
++        #         r zunionstore zsetcopy 1 zset
++        #         set lexsetcopy $lexset
++
++        #         set min [randstring 0 30 alpha]
++        #         set max [randstring 0 30 alpha]
++        #         set mininc [randomInt 2]
++        #         set maxinc [randomInt 2]
++        #         if {$mininc} {set cmin "\[$min"} else {set cmin "($min"}
++        #         if {$maxinc} {set cmax "\[$max"} else {set cmax "($max"}
++
++        #         # Make sure data is the same in both sides
++        #         assert {[r zrange zset 0 -1] eq $lexset}
++
++        #         # Get the range we are going to remove
++        #         set torem [r zrangebylex zset $cmin $cmax]
++        #         set toremlen [r zlexcount zset $cmin $cmax]
++        #         r zremrangebylex zsetcopy $cmin $cmax
++        #         set output [r zrange zsetcopy 0 -1]
++
++        #         # Remove the range with Tcl from the original list
++        #         if {$toremlen} {
++        #             set first [lsearch -exact $lexsetcopy [lindex $torem 0]]
++        #             set last [expr {$first+$toremlen-1}]
++        #             set lexsetcopy [lreplace $lexsetcopy $first $last]
++        #         }
++        #         assert {$lexsetcopy eq $output}
++        #     }
++        # }
++
++        # test "ZSETs skiplist implementation backlink consistency test - $encoding" {
++        #     set diff 0
++        #     for {set j 0} {$j < $elements} {incr j} {
++        #         r zadd myzset [expr rand()] "Element-$j"
++        #         r zrem myzset "Element-[expr int(rand()*$elements)]"
++        #     }
++
++        #     # assert_encoding $encoding myzset
++        #     set l1 [r zrange myzset 0 -1]
++        #     set l2 [r zrevrange myzset 0 -1]
++        #     for {set j 0} {$j < [llength $l1]} {incr j} {
++        #         if {[lindex $l1 $j] ne [lindex $l2 end-$j]} {
++        #             incr diff
++        #         }
++        #     }
++        #     assert_equal 0 $diff
++        # }
+ 
+         test "ZSETs ZRANK augmented skip list stress testing - $encoding" {
+             set err {}
+@@ -1094,7 +1098,7 @@ start_server {tags {"zset"}} {
+                 } else {
+                     set score [expr rand()]
+                     r zadd myzset $score $i
+-                    assert_encoding $encoding myzset
++                    # assert_encoding $encoding myzset
+                 }
+ 
+                 set card [r zcard myzset]
+@@ -1111,100 +1115,100 @@ start_server {tags {"zset"}} {
+             assert_equal {} $err
+         }
+ 
+-        test "BZPOPMIN, ZADD + DEL should not awake blocked client" {
+-            set rd [redis_deferring_client]
+-            r del zset
+-
+-            $rd bzpopmin zset 0
+-            r multi
+-            r zadd zset 0 foo
+-            r del zset
+-            r exec
+-            r del zset
+-            r zadd zset 1 bar
+-            $rd read
+-        } {zset bar 1}
+-
+-        test "BZPOPMIN, ZADD + DEL + SET should not awake blocked client" {
+-            set rd [redis_deferring_client]
+-            r del list
+-
+-            r del zset
+-
+-            $rd bzpopmin zset 0
+-            r multi
+-            r zadd zset 0 foo
+-            r del zset
+-            r set zset foo
+-            r exec
+-            r del zset
+-            r zadd zset 1 bar
+-            $rd read
+-        } {zset bar 1}
+-
+-        test "BZPOPMIN with same key multiple times should work" {
+-            set rd [redis_deferring_client]
+-            r del z1 z2
+-
+-            # Data arriving after the BZPOPMIN.
+-            $rd bzpopmin z1 z2 z2 z1 0
+-            r zadd z1 0 a
+-            assert_equal [$rd read] {z1 a 0}
+-            $rd bzpopmin z1 z2 z2 z1 0
+-            r zadd z2 1 b
+-            assert_equal [$rd read] {z2 b 1}
+-
+-            # Data already there.
+-            r zadd z1 0 a
+-            r zadd z2 1 b
+-            $rd bzpopmin z1 z2 z2 z1 0
+-            assert_equal [$rd read] {z1 a 0}
+-            $rd bzpopmin z1 z2 z2 z1 0
+-            assert_equal [$rd read] {z2 b 1}
+-        }
+-
+-        test "MULTI/EXEC is isolated from the point of view of BZPOPMIN" {
+-            set rd [redis_deferring_client]
+-            r del zset
+-            $rd bzpopmin zset 0
+-            r multi
+-            r zadd zset 0 a
+-            r zadd zset 1 b
+-            r zadd zset 2 c
+-            r exec
+-            $rd read
+-        } {zset a 0}
+-
+-        test "BZPOPMIN with variadic ZADD" {
+-            set rd [redis_deferring_client]
+-            r del zset
+-            if {$::valgrind} {after 100}
+-            $rd bzpopmin zset 0
+-            if {$::valgrind} {after 100}
+-            assert_equal 2 [r zadd zset -1 foo 1 bar]
+-            if {$::valgrind} {after 100}
+-            assert_equal {zset foo -1} [$rd read]
+-            assert_equal {bar} [r zrange zset 0 -1]
+-        }
+-
+-        test "BZPOPMIN with zero timeout should block indefinitely" {
+-            set rd [redis_deferring_client]
+-            r del zset
+-            $rd bzpopmin zset 0
+-            after 1000
+-            r zadd zset 0 foo
+-            assert_equal {zset foo 0} [$rd read]
+-        }
++        # test "BZPOPMIN, ZADD + DEL should not awake blocked client" {
++        #     set rd [redis_deferring_client]
++        #     r del zset
++
++        #     $rd bzpopmin zset 0
++        #     r multi
++        #     r zadd zset 0 foo
++        #     r del zset
++        #     r exec
++        #     r del zset
++        #     r zadd zset 1 bar
++        #     $rd read
++        # } {zset bar 1}
++
++        # test "BZPOPMIN, ZADD + DEL + SET should not awake blocked client" {
++        #     set rd [redis_deferring_client]
++        #     r del list
++
++        #     r del zset
++
++        #     $rd bzpopmin zset 0
++        #     r multi
++        #     r zadd zset 0 foo
++        #     r del zset
++        #     r set zset foo
++        #     r exec
++        #     r del zset
++        #     r zadd zset 1 bar
++        #     $rd read
++        # } {zset bar 1}
++
++        # test "BZPOPMIN with same key multiple times should work" {
++        #     set rd [redis_deferring_client]
++        #     r del z1 z2
++
++        #     # Data arriving after the BZPOPMIN.
++        #     $rd bzpopmin z1 z2 z2 z1 0
++        #     r zadd z1 0 a
++        #     assert_equal [$rd read] {z1 a 0}
++        #     $rd bzpopmin z1 z2 z2 z1 0
++        #     r zadd z2 1 b
++        #     assert_equal [$rd read] {z2 b 1}
++
++        #     # Data already there.
++        #     r zadd z1 0 a
++        #     r zadd z2 1 b
++        #     $rd bzpopmin z1 z2 z2 z1 0
++        #     assert_equal [$rd read] {z1 a 0}
++        #     $rd bzpopmin z1 z2 z2 z1 0
++        #     assert_equal [$rd read] {z2 b 1}
++        # }
++
++        # test "MULTI/EXEC is isolated from the point of view of BZPOPMIN" {
++        #     set rd [redis_deferring_client]
++        #     r del zset
++        #     $rd bzpopmin zset 0
++        #     r multi
++        #     r zadd zset 0 a
++        #     r zadd zset 1 b
++        #     r zadd zset 2 c
++        #     r exec
++        #     $rd read
++        # } {zset a 0}
++
++        # test "BZPOPMIN with variadic ZADD" {
++        #     set rd [redis_deferring_client]
++        #     r del zset
++        #     if {$::valgrind} {after 100}
++        #     $rd bzpopmin zset 0
++        #     if {$::valgrind} {after 100}
++        #     assert_equal 2 [r zadd zset -1 foo 1 bar]
++        #     if {$::valgrind} {after 100}
++        #     assert_equal {zset foo -1} [$rd read]
++        #     assert_equal {bar} [r zrange zset 0 -1]
++        # }
++
++        # test "BZPOPMIN with zero timeout should block indefinitely" {
++        #     set rd [redis_deferring_client]
++        #     r del zset
++        #     $rd bzpopmin zset 0
++        #     after 1000
++        #     r zadd zset 0 foo
++        #     assert_equal {zset foo 0} [$rd read]
++        # }
+     }
+ 
+     tags {"slow"} {
+-        stressers ziplist
++        # stressers ziplist
+         stressers skiplist
+     }
+ 
+     test {ZSET skiplist order consistency when elements are moved} {
+-        set original_max [lindex [r config get zset-max-ziplist-entries] 1]
+-        r config set zset-max-ziplist-entries 0
++        # set original_max [lindex [r config get zset-max-ziplist-entries] 1]
++        # r config set zset-max-ziplist-entries 0
+         for {set times 0} {$times < 10} {incr times} {
+             r del zset
+             for {set j 0} {$j < 1000} {incr j} {
+@@ -1225,6 +1229,6 @@ start_server {tags {"zset"}} {
+                 set prev_score $score
+             }
+         }
+-        r config set zset-max-ziplist-entries $original_max
++        # r config set zset-max-ziplist-entries $original_max
+     }
+ }
