From fbfd61b4714d3f0fabc6cb842b29e13262d5ab30 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 10 Oct 2018 17:37:37 +0200 Subject: [PATCH] Test: cgroup propagation test also for NOACK variant. Related to #5433. --- tests/unit/type/stream-cgroups.tcl | 68 +++++++++++++++++------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/tests/unit/type/stream-cgroups.tcl b/tests/unit/type/stream-cgroups.tcl index 34a72432..4df16c1a 100644 --- a/tests/unit/type/stream-cgroups.tcl +++ b/tests/unit/type/stream-cgroups.tcl @@ -103,36 +103,46 @@ start_server { 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." + foreach noack {0 1} { + test "Consumer group last ID propagation to slave (NOACK=$noack)" { + $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} { + if {$noack} { + set item [$master xreadgroup group mygroup \ + myconsumer COUNT 1 NOACK STREAMS stream >] + } else { + set item [$master xreadgroup group mygroup \ + myconsumer COUNT 1 STREAMS stream >] + } + set id [lindex $item 0 1 0 0] + if {$noack == 0} { + assert {[$master xack stream mygroup $id] eq "1"} + } + } + + # Turn slave into master + $slave slaveof no one + + set item [$slave 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}} } - - $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}} } } }