SpiecsEngine
 
Loading...
Searching...
No Matches

◆ TEST_F() [62/72]

SpicesTest::TEST_F ( ThreadPoolFixed_test ,
SubmitnThreadsPoolTask  )

Testing if submit nThreads pool task successfully.

Definition at line 231 of file ThreadPoolFixed_test.h.

231 {
232
234
235 auto func = [](int sec) -> bool
236 {
237 std::this_thread::sleep_for(std::chrono::seconds(sec));
238 return true;
239 };
240
241 std::vector<std::future<bool>> futures(nThreads);
242 for (int i = 0; i < nThreads; i++)
243 {
244 futures[i] = m_ThreadPool.SubmitPoolTask(std::bind(func, 2));
245 }
246
247 func(1); /* @brief Wait for task execute. */
248
249 EXPECT_EQ(m_ThreadPool.GetInitThreadSize() ,nThreads );
250 EXPECT_EQ(m_ThreadPool.GetIdleThreadSize() ,0 );
251 EXPECT_EQ(m_ThreadPool.GetPoolMode() ,Spices::PoolMode::MODE_FIXED );
252 EXPECT_EQ(m_ThreadPool.GetTasks() ,0 );
253 EXPECT_EQ(m_ThreadPool.GetThreadsCount() ,nThreads );
254 EXPECT_EQ(m_ThreadPool.GetThreadIdleTimeOut(),Spices::THREAD_MAX_IDLE_TIME );
255 EXPECT_EQ(m_ThreadPool.IsPoolRunning() ,true );
256
257 /* @brief Wait for sub thread finish. */
258 m_ThreadPool.Wait();
259
260 EXPECT_EQ(m_ThreadPool.GetInitThreadSize() ,nThreads );
261 EXPECT_EQ(m_ThreadPool.GetIdleThreadSize() ,nThreads );
262 EXPECT_EQ(m_ThreadPool.GetPoolMode() ,Spices::PoolMode::MODE_FIXED );
263 EXPECT_EQ(m_ThreadPool.GetTasks() ,0 );
264 EXPECT_EQ(m_ThreadPool.GetThreadsCount() ,nThreads );
265 EXPECT_EQ(m_ThreadPool.GetThreadIdleTimeOut(),Spices::THREAD_MAX_IDLE_TIME );
266 EXPECT_EQ(m_ThreadPool.IsPoolRunning() ,true );
267 }
#define SPICESTEST_PROFILE_FUNCTION()
constexpr uint32_t THREAD_MAX_IDLE_TIME