MCPcopy Create free account
hub / github.com/David-Haim/concurrencpp / test_task_move_constructor

Method test_task_move_constructor

test/source/tests/task_tests.cpp:276–413  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274}
275
276void concurrencpp::tests::test_task_move_constructor() {
277 // Default constructor:
278 {
279 task base_task;
280 task task(std::move(base_task));
281 assert_false(static_cast<bool>(base_task));
282 assert_false(static_cast<bool>(task));
283 }
284
285 // Function pointer
286 {
287 int (*function_pointer)() = &g_test_function;
288 task base_task(function_pointer);
289 task task(std::move(base_task));
290
291 assert_false(static_cast<bool>(base_task));
292 assert_true(static_cast<bool>(task));
293 assert_true(task.contains<int (*)()>());
294 assert_false(task.contains<test_functor<1>>());
295 assert_false(task.contains<test_functor<128>>());
296 assert_false(task.contains<coroutine_handle<void>>());
297 }
298
299 // Function reference
300 {
301 int (&function_reference)() = g_test_function;
302 task base_task(function_reference);
303 task task(std::move(base_task));
304 assert_false(static_cast<bool>(base_task));
305 assert_true(static_cast<bool>(task));
306 assert_true(task.contains<int (&)()>());
307 assert_false(task.contains<test_functor<1>>());
308 assert_false(task.contains<test_functor<128>>());
309 assert_false(task.contains<coroutine_handle<void>>());
310 }
311
312 // small functor
313 {
314 test_functor<8> small_functor;
315 task base_task(small_functor);
316 task task(std::move(base_task));
317 assert_false(static_cast<bool>(base_task));
318 assert_true(static_cast<bool>(task));
319 assert_false(task.contains<int (*)()>());
320 assert_true(task.contains<test_functor<8>>());
321 assert_false(task.contains<test_functor<128>>());
322 assert_false(task.contains<coroutine_handle<void>>());
323 }
324
325 // small lambda
326 {
327 std::array<char, 8> padding_s;
328 auto small_lambda = [padding_s]() mutable {
329 padding_s.fill(0);
330 };
331
332 task base_task(small_lambda);
333 task task(std::move(base_task));

Callers

nothing calls this directly

Calls 3

assert_falseFunction · 0.85
assert_trueFunction · 0.85
coro_functionFunction · 0.85

Tested by

no test coverage detected