diff options
Diffstat (limited to 'examples/redis-unstable/tests/unit/pubsubshard.tcl')
| -rw-r--r-- | examples/redis-unstable/tests/unit/pubsubshard.tcl | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/examples/redis-unstable/tests/unit/pubsubshard.tcl b/examples/redis-unstable/tests/unit/pubsubshard.tcl deleted file mode 100644 index a3c841d..0000000 --- a/examples/redis-unstable/tests/unit/pubsubshard.tcl +++ /dev/null @@ -1,169 +0,0 @@ -start_server {tags {"pubsubshard external:skip"}} { - test "SPUBLISH/SSUBSCRIBE basics" { - set rd1 [redis_deferring_client] - - # subscribe to two channels - assert_equal {1} [ssubscribe $rd1 {chan1}] - assert_equal {2} [ssubscribe $rd1 {chan2}] - assert_equal 1 [r SPUBLISH chan1 hello] - assert_equal 1 [r SPUBLISH chan2 world] - assert_equal {smessage chan1 hello} [$rd1 read] - assert_equal {smessage chan2 world} [$rd1 read] - - # unsubscribe from one of the channels - sunsubscribe $rd1 {chan1} - assert_equal 0 [r SPUBLISH chan1 hello] - assert_equal 1 [r SPUBLISH chan2 world] - assert_equal {smessage chan2 world} [$rd1 read] - - # unsubscribe from the remaining channel - sunsubscribe $rd1 {chan2} - assert_equal 0 [r SPUBLISH chan1 hello] - assert_equal 0 [r SPUBLISH chan2 world] - - # clean up clients - $rd1 close - } - - test "SPUBLISH/SSUBSCRIBE with two clients" { - set rd1 [redis_deferring_client] - set rd2 [redis_deferring_client] - - assert_equal {1} [ssubscribe $rd1 {chan1}] - assert_equal {1} [ssubscribe $rd2 {chan1}] - assert_equal 2 [r SPUBLISH chan1 hello] - assert_equal {smessage chan1 hello} [$rd1 read] - assert_equal {smessage chan1 hello} [$rd2 read] - - # clean up clients - $rd1 close - $rd2 close - } - - test "SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments" { - set rd1 [redis_deferring_client] - assert_equal {1} [ssubscribe $rd1 {chan1}] - assert_equal {2} [ssubscribe $rd1 {chan2}] - assert_equal {3} [ssubscribe $rd1 {chan3}] - sunsubscribe $rd1 - wait_for_condition 100 10 { - [regexp {cmd=sunsubscribe} [r client list]] eq 1 - } else { - fail "sunsubscribe did not arrive" - } - assert_equal 0 [r SPUBLISH chan1 hello] - assert_equal 0 [r SPUBLISH chan2 hello] - assert_equal 0 [r SPUBLISH chan3 hello] - - # clean up clients - $rd1 close - } - - test "SSUBSCRIBE to one channel more than once" { - set rd1 [redis_deferring_client] - assert_equal {1 1 1} [ssubscribe $rd1 {chan1 chan1 chan1}] - assert_equal 1 [r SPUBLISH chan1 hello] - assert_equal {smessage chan1 hello} [$rd1 read] - - # clean up clients - $rd1 close - } - - test "SUNSUBSCRIBE from non-subscribed channels" { - set rd1 [redis_deferring_client] - assert_equal {0} [sunsubscribe $rd1 {foo}] - assert_equal {0} [sunsubscribe $rd1 {bar}] - assert_equal {0} [sunsubscribe $rd1 {quux}] - - # clean up clients - $rd1 close - } - - test "PUBSUB command basics" { - r pubsub shardnumsub abc def - } {abc 0 def 0} - - test "SPUBLISH/SSUBSCRIBE with two clients" { - set rd1 [redis_deferring_client] - set rd2 [redis_deferring_client] - - assert_equal {1} [ssubscribe $rd1 {chan1}] - assert_equal {1} [ssubscribe $rd2 {chan1}] - assert_equal 2 [r SPUBLISH chan1 hello] - assert_equal "chan1 2" [r pubsub shardnumsub chan1] - assert_equal "chan1" [r pubsub shardchannels] - - # clean up clients - $rd1 close - $rd2 close - } - - test "SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE" { - set rd1 [redis_deferring_client] - set rd2 [redis_deferring_client] - - assert_equal {1} [ssubscribe $rd1 {chan1}] - assert_equal {1} [subscribe $rd2 {chan1}] - assert_equal 1 [r SPUBLISH chan1 hello] - assert_equal 1 [r publish chan1 hello] - assert_equal "chan1 1" [r pubsub shardnumsub chan1] - assert_equal "chan1 1" [r pubsub numsub chan1] - assert_equal "chan1" [r pubsub shardchannels] - assert_equal "chan1" [r pubsub channels] - - $rd1 close - $rd2 close - } - - test "PubSubShard with CLIENT REPLY OFF" { - set rd [redis_deferring_client] - $rd hello 3 - $rd read ;# Discard the hello reply - - # Test that the ssubscribe notification is ok - $rd client reply off - $rd ping - assert_equal {1} [ssubscribe $rd channel] - - # Test that the spublish notification is ok - $rd client reply off - $rd ping - assert_equal 1 [r spublish channel hello] - assert_equal {smessage channel hello} [$rd read] - - # Test that sunsubscribe notification is ok - $rd client reply off - $rd ping - assert_equal {0} [sunsubscribe $rd channel] - - $rd close - } -} - -start_server {tags {"pubsubshard external:skip"}} { -start_server {tags {"pubsubshard external:skip"}} { - set node_0 [srv 0 client] - set node_0_host [srv 0 host] - set node_0_port [srv 0 port] - - set node_1 [srv -1 client] - set node_1_host [srv -1 host] - set node_1_port [srv -1 port] - - test {setup replication for following tests} { - $node_1 replicaof $node_0_host $node_0_port - wait_for_sync $node_1 - } - - test {publish message to master and receive on replica} { - set rd0 [redis_deferring_client node_0_host node_0_port] - set rd1 [redis_deferring_client node_1_host node_1_port] - - assert_equal {1} [ssubscribe $rd1 {chan1}] - $rd0 SPUBLISH chan1 hello - assert_equal {smessage chan1 hello} [$rd1 read] - $rd0 SPUBLISH chan1 world - assert_equal {smessage chan1 world} [$rd1 read] - } -} -}
\ No newline at end of file |
