#include #include #include START_TEST (test_settable_clock) struct UCoreSettableClock my_clock; struct timeval tv; struct timeval tv_tmp; uc_settable_clock_init(&my_clock); my_clock.clock.now(&my_clock.clock, &tv); fail_if(tv.tv_sec != 0); fail_if(tv.tv_usec != 0); uc_settable_clock_set(&my_clock, 10001, 1002); my_clock.clock.now(&my_clock.clock, &tv); fail_if(tv.tv_sec != 10001); fail_if(tv.tv_usec != 1002); my_clock.clock.now(&my_clock.clock, &tv); tv_tmp.tv_sec = 123456789; tv_tmp.tv_usec = 44; uc_settable_clock_set_tv(&my_clock, &tv_tmp); my_clock.clock.now(&my_clock.clock, &tv); fail_if(tv.tv_sec != 123456789); fail_if(tv.tv_usec != 44); END_TEST START_TEST (test_cached_clock) struct UCoreCachedClock my_clock; struct timeval tv1,tv2; uc_cached_clock_init(&my_clock, &uc_timeofday_clock); my_clock.clock.now(&my_clock.clock, &tv1); fail_if(tv1.tv_sec == 0); fail_if(tv1.tv_usec == 0); my_clock.clock.now(&my_clock.clock, &tv1); usleep(100); my_clock.clock.now(&my_clock.clock, &tv2); fail_if(timercmp(&tv1, &tv2, !=)); usleep(100); uc_cached_clock_update(&my_clock); my_clock.clock.now(&my_clock.clock, &tv1); fail_if(!timercmp(&tv1, &tv2, !=)); END_TEST Suite *clock_suite(void) { Suite *s = suite_create("clock"); TCase *tc = tcase_create("clock tests"); tcase_add_test(tc, test_settable_clock); tcase_add_test(tc, test_cached_clock); suite_add_tcase(s, tc); return s; }