diff options
Diffstat (limited to 'vespalib/src/tests/executor/threadstackexecutor_test.cpp')
-rw-r--r-- | vespalib/src/tests/executor/threadstackexecutor_test.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/vespalib/src/tests/executor/threadstackexecutor_test.cpp b/vespalib/src/tests/executor/threadstackexecutor_test.cpp index b55f54f9339..56dbf0d19b5 100644 --- a/vespalib/src/tests/executor/threadstackexecutor_test.cpp +++ b/vespalib/src/tests/executor/threadstackexecutor_test.cpp @@ -74,9 +74,9 @@ struct MyState { ExecutorStats stats = executor.getStats(); EXPECT_EQUAL(expect_running + expect_deleted, MyTask::runCnt); EXPECT_EQUAL(expect_rejected + expect_deleted, MyTask::deleteCnt); - EXPECT_EQUAL(expect_queue + expect_running + expect_deleted, - stats.acceptedTasks); + EXPECT_EQUAL(expect_queue + expect_running + expect_deleted,stats.acceptedTasks); EXPECT_EQUAL(expect_rejected, stats.rejectedTasks); + EXPECT_TRUE(stats.wakeupCount <= (NUM_THREADS + stats.acceptedTasks)); EXPECT_TRUE(!(gate.getCount() == 1) || (expect_deleted == 0)); if (expect_deleted == 0) { EXPECT_EQUAL(expect_queue + expect_running, stats.queueSize.max()); @@ -85,6 +85,7 @@ struct MyState { EXPECT_EQUAL(expect_queue + expect_running, stats.queueSize.max()); EXPECT_EQUAL(0u, stats.acceptedTasks); EXPECT_EQUAL(0u, stats.rejectedTasks); + EXPECT_EQUAL(0u, stats.wakeupCount); return *this; } }; @@ -188,11 +189,16 @@ TEST_F("require that executor thread stack tag can be set", ThreadStackExecutor( } TEST("require that stats can be accumulated") { - ExecutorStats stats(ExecutorStats::QueueSizeT(1) ,2,3); + EXPECT_TRUE(std::atomic<duration>::is_always_lock_free); + ExecutorStats stats(3, ExecutorStats::QueueSizeT(1) ,2,3,7, 0.6); EXPECT_EQUAL(1u, stats.queueSize.max()); EXPECT_EQUAL(2u, stats.acceptedTasks); EXPECT_EQUAL(3u, stats.rejectedTasks); - stats += ExecutorStats(ExecutorStats::QueueSizeT(7),8,9); + EXPECT_EQUAL(7u, stats.wakeupCount); + EXPECT_EQUAL(3u, stats.executorCount); + EXPECT_EQUAL(0.6, stats.absUtil); + EXPECT_EQUAL(0.2, stats.getUtil()); + stats.aggregate(ExecutorStats(7, ExecutorStats::QueueSizeT(7),8,9,11, 1.9)); EXPECT_EQUAL(2u, stats.queueSize.count()); EXPECT_EQUAL(8u, stats.queueSize.total()); EXPECT_EQUAL(8u, stats.queueSize.max()); @@ -200,9 +206,18 @@ TEST("require that stats can be accumulated") { EXPECT_EQUAL(8u, stats.queueSize.max()); EXPECT_EQUAL(4.0, stats.queueSize.average()); + EXPECT_EQUAL(10u, stats.executorCount); EXPECT_EQUAL(10u, stats.acceptedTasks); EXPECT_EQUAL(12u, stats.rejectedTasks); + EXPECT_EQUAL(18u, stats.wakeupCount); + EXPECT_EQUAL(2.5, stats.absUtil); + EXPECT_EQUAL(0.25, stats.getUtil()); +} +TEST("Test that load is computed") { + ThreadStackExecutor executor(1, 128_Ki); + auto stats = executor.getStats(); + EXPECT_EQUAL(0.0, stats.absUtil); } TEST_MAIN() { TEST_RUN_ALL(); } |