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

Method test_task_constructor

test/source/tests/task_tests.cpp:168–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166using concurrencpp::task;
167
168void concurrencpp::tests::test_task_constructor() {
169 // Default constructor:
170 {
171 task task;
172 assert_false(static_cast<bool>(task));
173 }
174
175 // Function pointer
176 {
177 int (*function_ptr)() = &g_test_function;
178 task task(function_ptr);
179 assert_true(static_cast<bool>(task));
180 assert_true(task.contains<int (*)()>());
181 assert_false(task.contains<test_functor<1>>());
182 assert_false(task.contains<test_functor<100>>());
183 assert_false(task.contains<::coroutine_handle<void>>());
184 }
185
186 // Function reference
187 {
188 int (&function_reference)() = g_test_function;
189 task task(function_reference);
190 assert_true(static_cast<bool>(task));
191 assert_true(task.contains<int (&)()>());
192 assert_false(task.contains<test_functor<1>>());
193 assert_false(task.contains<test_functor<100>>());
194 assert_false(task.contains<coroutine_handle<void>>());
195 }
196
197 // small functor
198 {
199 test_functor<8> small_functor;
200 task task(small_functor);
201 assert_true(static_cast<bool>(task));
202 assert_false(task.contains<int (*)()>());
203 assert_true(task.contains<test_functor<8>>());
204 assert_false(task.contains<test_functor<100>>());
205 assert_false(task.contains<coroutine_handle<void>>());
206 }
207
208 // small lambda
209 {
210 std::array<char, 8> padding_s;
211 auto lambda = [padding_s]() mutable {
212 padding_s.fill(0);
213 };
214
215 task task(lambda);
216 assert_true(static_cast<bool>(task));
217 assert_false(task.contains<int (*)()>());
218 assert_false(task.contains<test_functor<8>>());
219 assert_false(task.contains<test_functor<100>>());
220 assert_true(task.contains<decltype(lambda)>());
221 assert_false(task.contains<coroutine_handle<void>>());
222 }
223
224 // big functor
225 {

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