diff options
author | vmordovin <vmordovin@yandex-team.ru> | 2022-02-10 16:48:14 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:48:14 +0300 |
commit | 7c7f9bbcf57e15838d15afa94b31d8254b5d7776 (patch) | |
tree | 17073f853e6b3a1a95708e8aa0ea12fa42a717e7 /library/cpp/threading/task_scheduler/task_scheduler_ut.cpp | |
parent | 466f96709329ff77ded50177df94d1893a226c00 (diff) | |
download | ydb-7c7f9bbcf57e15838d15afa94b31d8254b5d7776.tar.gz |
Restoring authorship annotation for <vmordovin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/threading/task_scheduler/task_scheduler_ut.cpp')
-rw-r--r-- | library/cpp/threading/task_scheduler/task_scheduler_ut.cpp | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/library/cpp/threading/task_scheduler/task_scheduler_ut.cpp b/library/cpp/threading/task_scheduler/task_scheduler_ut.cpp index 3b5203194a..d94e4bfeab 100644 --- a/library/cpp/threading/task_scheduler/task_scheduler_ut.cpp +++ b/library/cpp/threading/task_scheduler/task_scheduler_ut.cpp @@ -1,86 +1,86 @@ -#include <algorithm> +#include <algorithm> #include <library/cpp/testing/unittest/registar.h> - + #include <util/stream/output.h> #include <util/system/atomic.h> #include <util/generic/vector.h> - + #include "task_scheduler.h" - -class TTaskSchedulerTest: public TTestBase { - UNIT_TEST_SUITE(TTaskSchedulerTest); - UNIT_TEST(Test); - UNIT_TEST_SUITE_END(); - + +class TTaskSchedulerTest: public TTestBase { + UNIT_TEST_SUITE(TTaskSchedulerTest); + UNIT_TEST(Test); + UNIT_TEST_SUITE_END(); + class TCheckTask: public TTaskScheduler::IRepeatedTask { - public: + public: TCheckTask(const TDuration& delay) : Start_(Now()) , Delay_(delay) - { + { AtomicIncrement(ScheduledTaskCounter_); - } - + } + ~TCheckTask() override { - } - + } + bool Process() override { const TDuration delay = Now() - Start_; - + if (delay < Delay_) { AtomicIncrement(BadTimeoutCounter_); - } - + } + AtomicIncrement(ExecutedTaskCounter_); return false; - } - - static bool AllTaskExecuted() { + } + + static bool AllTaskExecuted() { return AtomicGet(ScheduledTaskCounter_) == AtomicGet(ExecutedTaskCounter_); - } - - static size_t BadTimeoutCount() { + } + + static size_t BadTimeoutCount() { return AtomicGet(BadTimeoutCounter_); - } - - private: + } + + private: TInstant Start_; TDuration Delay_; static TAtomic BadTimeoutCounter_; static TAtomic ScheduledTaskCounter_; static TAtomic ExecutedTaskCounter_; - }; - - public: - inline void Test() { - ScheduleCheckTask(200); - ScheduleCheckTask(100); - ScheduleCheckTask(1000); - ScheduleCheckTask(10000); - ScheduleCheckTask(5000); - + }; + + public: + inline void Test() { + ScheduleCheckTask(200); + ScheduleCheckTask(100); + ScheduleCheckTask(1000); + ScheduleCheckTask(10000); + ScheduleCheckTask(5000); + Scheduler_.Start(); - - usleep(1000000); - - UNIT_ASSERT_EQUAL(TCheckTask::BadTimeoutCount(), 0); - UNIT_ASSERT(TCheckTask::AllTaskExecuted()); - } - - private: - void ScheduleCheckTask(size_t delay) { + + usleep(1000000); + + UNIT_ASSERT_EQUAL(TCheckTask::BadTimeoutCount(), 0); + UNIT_ASSERT(TCheckTask::AllTaskExecuted()); + } + + private: + void ScheduleCheckTask(size_t delay) { TDuration d = TDuration::MicroSeconds(delay); Scheduler_.Add(new TCheckTask(d), d); - } - - private: + } + + private: TTaskScheduler Scheduler_; -}; - +}; + TAtomic TTaskSchedulerTest::TCheckTask::BadTimeoutCounter_ = 0; TAtomic TTaskSchedulerTest::TCheckTask::ScheduledTaskCounter_ = 0; TAtomic TTaskSchedulerTest::TCheckTask::ExecutedTaskCounter_ = 0; - -UNIT_TEST_SUITE_REGISTRATION(TTaskSchedulerTest); + +UNIT_TEST_SUITE_REGISTRATION(TTaskSchedulerTest); |