diff options
author | antirez <antirez@gmail.com> | 2018-10-10 17:32:17 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2018-10-15 13:05:17 +0200 |
commit | 8defa5da3cd96c0f7ca7aedc5e16ffd3a60fed0d (patch) | |
tree | c8c3c436ab703a5e8b54bf5dc60343f3cc2e3186 /tests | |
parent | e1e3eacae3288332ccde2c44f908e9a859fd660d (diff) | |
download | redis-8defa5da3cd96c0f7ca7aedc5e16ffd3a60fed0d.tar.gz |
Test: consumer group last ID slave propagation test.
This is a regression for #5433.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/type/stream-cgroups.tcl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/unit/type/stream-cgroups.tcl b/tests/unit/type/stream-cgroups.tcl index 7c991a5da..34a724321 100644 --- a/tests/unit/type/stream-cgroups.tcl +++ b/tests/unit/type/stream-cgroups.tcl @@ -96,4 +96,43 @@ start_server { set c [llength [lindex [r xreadgroup group g1 c2 streams events >] 0 1]] assert {$c == 5} } + + start_server {} { + set master [srv -1 client] + set master_host [srv -1 host] + set master_port [srv -1 port] + set slave [srv 0 client] + + test {Consumer group last ID propagation to slave} { + $slave slaveof $master_host $master_port + wait_for_condition 50 100 { + [s 0 master_link_status] eq {up} + } else { + fail "Replication not started." + } + + $master del stream + $master xadd stream * a 1 + $master xadd stream * a 2 + $master xadd stream * a 3 + $master xgroup create stream mygroup 0 + + # Consume the first two items on the master + for {set j 0} {$j < 2} {incr j} { + set item [$master xreadgroup group mygroup myconsumer COUNT 1 STREAMS stream >] + set id [lindex $item 0 1 0 0] + assert {[$master xack stream mygroup $id] eq "1"} + } + + # Turn slave into master + $slave slaveof no one + set master $slave + + set item [$master xreadgroup group mygroup myconsumer COUNT 1 STREAMS stream >] + + # The consumed enty should be the third + set myentry [lindex $item 0 1 0 1] + assert {$myentry eq {a 3}} + } + } } |