summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2018-10-10 17:32:17 +0200
committerantirez <antirez@gmail.com>2018-10-15 13:05:17 +0200
commit8defa5da3cd96c0f7ca7aedc5e16ffd3a60fed0d (patch)
treec8c3c436ab703a5e8b54bf5dc60343f3cc2e3186 /tests
parente1e3eacae3288332ccde2c44f908e9a859fd660d (diff)
downloadredis-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.tcl39
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}}
+ }
+ }
}