/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation * * SPDX-License-Identifier: Apache-2.0 */ #include #include "util/task.h" CCL_NAMESPACE_BEGIN namespace { void task_run() {} } // namespace TEST(util_task, basic) { TaskScheduler::init(0); TaskPool pool; for (int i = 0; i < 100; ++i) { pool.push([] { task_run(); }); } TaskPool::Summary summary; pool.wait_work(&summary); TaskScheduler::exit(); EXPECT_EQ(summary.num_tasks_handled, 100); } TEST(util_task, multiple_times) { for (int N = 0; N < 1000; ++N) { TaskScheduler::init(0); TaskPool pool; for (int i = 0; i < 100; ++i) { pool.push([] { task_run(); }); } TaskPool::Summary summary; pool.wait_work(&summary); TaskScheduler::exit(); EXPECT_EQ(summary.num_tasks_handled, 100); } } CCL_NAMESPACE_END