diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-09 10:10:16 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-09 10:10:16 +0000 |
commit | 7ec8c50b97dcb8fb382aaea21eb1246a1fac7d60 (patch) | |
tree | 1db37f823da905141fed67d4469106efc50a5e10 /searchcore | |
parent | 698958121d901f6c16da091e97aa87108d0c8457 (diff) |
Test that only 1 high priority target gets a slot when all normal slots are taken.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/tests/proton/flushengine/flushengine_test.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
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<SimpleTarget>("target2", 2, false); auto target3 = std::make_shared<SimpleTarget>("target3", 2, false); auto target4 = std::make_shared<HighPriorityTarget>("target4", 3, false); - auto handler = std::make_shared<SimpleHandler>(Targets({target1, target2, target3, target4}), "handler", 9); + auto target5 = std::make_shared<HighPriorityTarget>("target5", 5, false); + auto handler = std::make_shared<SimpleHandler>(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)) |