unit-tests: Add a simple thread detach test

This commit is contained in:
Martin Willi
2013-11-06 10:31:02 +01:00
parent 5d4a882f45
commit 274e6beb00
@@ -189,6 +189,38 @@ START_TEST(test_join)
}
END_TEST
static void *detach_run(void *data)
{
refcount_t *running = (refcount_t*)data;
ignore_result(ref_put(running));
return NULL;
}
START_TEST(test_detach)
{
thread_t *threads[THREADS];
int i;
refcount_t running = 0;
for (i = 0; i < THREADS; i++)
{
ref_get(&running);
threads[i] = thread_create(detach_run, &running);
}
for (i = 0; i < THREADS; i++)
{
threads[i]->detach(threads[i]);
}
while (running > 0)
{
sched_yield();
}
/* no checks done here, but we check that thread state gets cleaned
* up with leak detective. */
}
END_TEST
Suite *threading_suite_create()
{
Suite *s;
@@ -204,5 +236,9 @@ Suite *threading_suite_create()
tcase_add_test(tc, test_join);
suite_add_tcase(s, tc);
tc = tcase_create("thread detaching");
tcase_add_test(tc, test_detach);
suite_add_tcase(s, tc);
return s;
}