From a8a09f209e7fefc8d256dd778d2a8d44f082e0d1 Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Mon, 27 Jan 2020 16:06:35 -0800 Subject: [PATCH] Add test to ensure that concurrent message loops have at least one workers. The current count is determined from std::thread::hardware_concurrency which can return zero. Even in such cases, the implementation may not return a loop with no workers. There are numerous components that depend on having non-zero workers in the queue. --- fml/message_loop_unittests.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fml/message_loop_unittests.cc b/fml/message_loop_unittests.cc index 8edc7170741cd..387d552c6663a 100644 --- a/fml/message_loop_unittests.cc +++ b/fml/message_loop_unittests.cc @@ -284,6 +284,12 @@ TEST(MessageLoop, TaskObserverFire) { ASSERT_TRUE(terminated); } +TEST(MessageLoop, ConcurrentMessageLoopHasNonZeroWorkers) { + auto loop = fml::ConcurrentMessageLoop::Create( + 0u /* explicitly specify zero workers */); + ASSERT_GT(loop->GetWorkerCount(), 0u); +} + TEST(MessageLoop, CanCreateAndShutdownConcurrentMessageLoopsOverAndOver) { for (size_t i = 0; i < 10; ++i) { auto loop = fml::ConcurrentMessageLoop::Create(i + 1);