From 7ec8c50b97dcb8fb382aaea21eb1246a1fac7d60 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Tue, 9 May 2023 10:10:16 +0000 Subject: Test that only 1 high priority target gets a slot when all normal slots are taken. --- .../tests/proton/flushengine/flushengine_test.cpp | 26 +++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'searchcore') diff --git a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp index caa88e7305b..dd8096e1d46 100644 --- a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp +++ b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp @@ -723,26 +723,36 @@ TEST_F("require that high pri concurrency works", Fixture(2, 1ms)) auto target2 = std::make_shared("target2", 2, false); auto target3 = std::make_shared("target3", 2, false); auto target4 = std::make_shared("target4", 3, false); - auto handler = std::make_shared(Targets({target1, target2, target3, target4}), "handler", 9); + auto target5 = std::make_shared("target5", 5, false); + auto handler = std::make_shared(Targets({target1, target2, target3, target4, target5}), "handler", 9); f.putFlushHandler("handler", handler); f.engine.start(); EXPECT_TRUE(target1->_initDone.await(LONG_TIMEOUT)); EXPECT_TRUE(target2->_initDone.await(LONG_TIMEOUT)); - EXPECT_TRUE(!target3->_initDone.await(SHORT_TIMEOUT)); - EXPECT_TRUE(target4->_initDone.await(SHORT_TIMEOUT)); + EXPECT_TRUE(target4->_initDone.await(LONG_TIMEOUT)); + EXPECT_FALSE(target3->_initDone.await(SHORT_TIMEOUT)); + EXPECT_FALSE(target5->_initDone.await(SHORT_TIMEOUT)); assertThatHandlersInCurrentSet(f.engine, {"handler.target1", "handler.target2", "handler.target4"}); - EXPECT_TRUE(!target3->_initDone.await(SHORT_TIMEOUT)); target1->_proceed.countDown(); EXPECT_TRUE(target1->_taskDone.await(LONG_TIMEOUT)); - EXPECT_TRUE(!target3->_initDone.await(SHORT_TIMEOUT)); - assertThatHandlersInCurrentSet(f.engine, {"handler.target2", "handler.target4"}); + EXPECT_TRUE(target5->_initDone.await(LONG_TIMEOUT)); + EXPECT_FALSE(target3->_initDone.await(SHORT_TIMEOUT)); + assertThatHandlersInCurrentSet(f.engine, {"handler.target2", "handler.target4", "handler.target5"}); target2->_proceed.countDown(); EXPECT_TRUE(target2->_taskDone.await(LONG_TIMEOUT)); + EXPECT_FALSE(target3->_initDone.await(SHORT_TIMEOUT)); + assertThatHandlersInCurrentSet(f.engine, {"handler.target4", "handler.target5"}); + target4->_proceed.countDown(); + EXPECT_TRUE(target4->_taskDone.await(LONG_TIMEOUT)); EXPECT_TRUE(target3->_initDone.await(LONG_TIMEOUT)); - assertThatHandlersInCurrentSet(f.engine, {"handler.target4", "handler.target3"}); + assertThatHandlersInCurrentSet(f.engine, {"handler.target5", "handler.target3"}); target3->_proceed.countDown(); - target4->_proceed.countDown(); + EXPECT_TRUE(target3->_taskDone.await(LONG_TIMEOUT)); + assertThatHandlersInCurrentSet(f.engine, {"handler.target5"}); + target5->_proceed.countDown(); + EXPECT_TRUE(target5->_taskDone.await(LONG_TIMEOUT)); + assertThatHandlersInCurrentSet(f.engine, {}); } TEST_F("require that concurrency works with triggerFlush", Fixture(2, 1ms)) -- cgit v1.2.3