SpiecsEngine
 
Loading...
Searching...
No Matches

◆ TEST_F() [69/72]

SpicesTest::TEST_F ( ThreadPoolFixed_test ,
SubmitVeryMuchThreadTask  )

Testing if submit very much thread task successfully.

Definition at line 448 of file ThreadPoolFixed_test.h.

448 {
449
451
452 auto func = []() -> void
453 {
454 std::this_thread::sleep_for(std::chrono::microseconds(1));
455 };
456
457 for (int i = 0; i < 2000; i++)
458 {
459 m_ThreadPool.SubmitThreadTask_LightWeight_ForEach(func);
460 }
461
462 /* @brief Wait for all tasks finish. */
463 m_ThreadPool.Wait();
464
465 EXPECT_EQ(m_ThreadPool.GetInitThreadSize() ,nThreads );
466 EXPECT_EQ(m_ThreadPool.GetIdleThreadSize() ,nThreads );
467 EXPECT_EQ(m_ThreadPool.GetPoolMode() ,Spices::PoolMode::MODE_FIXED );
468 EXPECT_EQ(m_ThreadPool.GetTasks() ,0 );
469 EXPECT_EQ(m_ThreadPool.GetThreadsCount() ,nThreads );
470 EXPECT_EQ(m_ThreadPool.GetThreadIdleTimeOut(),Spices::THREAD_MAX_IDLE_TIME );
471 EXPECT_EQ(m_ThreadPool.IsPoolRunning() ,true );
472
473 for (auto& pair : m_ThreadPool.GetThreads())
474 {
475 EXPECT_EQ(pair.second->GetThreadTasksCount(),0);
476 }
477 }
#define SPICESTEST_PROFILE_FUNCTION()
constexpr uint32_t THREAD_MAX_IDLE_TIME