@@ -400,6 +400,25 @@ TEST_F(StreamFamilyTest, XReadGroupBlock) {
400
400
EXPECT_THAT (resp0, ErrArg (" consumer group this client was blocked on no longer exists" ));
401
401
}
402
402
403
+ TEST_F (StreamFamilyTest, XReadGroupBlockDelconsumer) {
404
+ Run ({" XGROUP" , " CREATE" , " foo" , " group" , " 0" , " MKSTREAM" });
405
+
406
+ RespExpr resp0;
407
+ auto fb0 = pp_->at (1 )->LaunchFiber (Launch::dispatch, [&] {
408
+ resp0 = Run ({" XREADGROUP" , " GROUP" , " group" , " alice" , " BLOCK" , " 0" , " streams" , " foo" , " >" });
409
+ });
410
+ ThisFiber::SleepFor (50us);
411
+
412
+ // Del consumer while it's blocked
413
+ RespExpr resp_del_consumer = Run ({" XGROUP" , " DELCONSUMER" , " foo" , " group" , " alice" });
414
+
415
+ pp_->at (1 )->Await ([&] { return Run (" xadd" , {" XADD" , " foo" , " 1-0" , " k1" , " v1" }); });
416
+ fb0.Join ();
417
+
418
+ EXPECT_THAT (resp0.GetVec (), ElementsAre (" foo" , ArrLen (1 )));
419
+ EXPECT_THAT (resp_del_consumer, IntArg (0 ));
420
+ }
421
+
403
422
TEST_F (StreamFamilyTest, XReadInvalidArgs) {
404
423
// Invalid COUNT value.
405
424
auto resp = Run ({" xread" , " count" , " invalid" , " streams" , " s1" , " s2" , " 0" , " 0" });
0 commit comments