#include "flexthread.h" #include "util.h" #include START_TEST( test_mutex_create ) { struct flexthread_mutex * ftm = flexthread_mutex_create(); NULLCHECK( ftm ); flexthread_mutex_destroy( ftm ); } END_TEST START_TEST( test_mutex_lock ) { struct flexthread_mutex * ftm = flexthread_mutex_create(); fail_if( flexthread_mutex_held( ftm ), "Flexthread_mutex is held before lock" ); flexthread_mutex_lock( ftm ); fail_unless( flexthread_mutex_held( ftm ), "Flexthread_mutex is not held inside lock" ); flexthread_mutex_unlock( ftm ); fail_if( flexthread_mutex_held( ftm ), "Flexthread_mutex is held after unlock" ); flexthread_mutex_destroy( ftm ); } END_TEST Suite* flexthread_suite(void) { Suite *s = suite_create("flexthread"); TCase *tc_create = tcase_create("create"); TCase *tc_destroy = tcase_create("destroy"); tcase_add_test( tc_create, test_mutex_create ); tcase_add_test( tc_create, test_mutex_lock ); suite_add_tcase(s, tc_create); suite_add_tcase(s, tc_destroy); return s; } int main(void) { #ifdef DEBUG log_level = 0; #else log_level = 2; #endif int number_failed; Suite *s = flexthread_suite(); SRunner *sr = srunner_create(s); srunner_run_all(sr, CK_NORMAL); log_level = 0; number_failed = srunner_ntests_failed(sr); srunner_free(sr); return (number_failed == 0) ? 0 : 1; }