#include #include #include using namespace pls::internal::base; using namespace std; static bool visited; static int local_value_1; static vector local_value_two; TEST_CASE( "thread creation and joining", "[internal/base/thread.h]") { visited = false; auto t1 = start_thread([]() { visited = true; }); t1.join(); REQUIRE(visited); } TEST_CASE( "thread state", "[internal/base/thread.h]") { int state_one = 1; vector state_two{1, 2}; auto t1 = start_thread([]() { local_value_1 = *this_thread::state(); }, &state_one); auto t2 = start_thread([]() { local_value_two = *this_thread::state>(); }, &state_two); t1.join(); t2.join(); REQUIRE(local_value_1 == 1); REQUIRE(local_value_two == vector{1, 2}); }