DECLARE_TEST(time, builtin) { tick_t tick, newtick, tps; deltatime_t dt; tps = time_ticks_per_second(); EXPECT_GT(tps, 0); tick = time_current(); thread_sleep(30); newtick = time_current(); EXPECT_TICKNE(tick, 0); EXPECT_TICKGT(newtick, tick); EXPECT_TICKGT(time_diff(tick, newtick), 0); EXPECT_GT_MSGFORMAT(time_diff(tick, newtick), (tps / 100LL), "time elapsed not more than 10ms: %" PRId64 " (%" PRId64 ")", time_diff(tick, newtick), (tps / 100)); //more than 10 ms EXPECT_LT_MSGFORMAT(time_diff(tick, newtick), (tps / 20LL), "time elapsed not less than 50ms: %" PRId64 " (%" PRId64 ")", time_diff(tick, newtick), (tps / 33)); //less than 30 ms EXPECT_REALGT(time_elapsed(tick), 0); EXPECT_REALGT(time_elapsed(tick), 0.01f); //more than 10 ms EXPECT_TICKGT(time_elapsed_ticks(tick), 0); EXPECT_TICKGT(time_elapsed_ticks(tick), (tps / 100)); //more than 10 ms EXPECT_TICKLT(time_elapsed_ticks(tick), (tps / 20)); //less than 50 ms dt = time_ticks_to_seconds(newtick - tick); EXPECT_REALGT(dt, 0); EXPECT_GT_MSGFORMAT(dt, 0.01f, "time elapsed in seconds not more than 10ms: %.5f", dt); //more than 10 ms EXPECT_LT_MSGFORMAT(dt, 0.05f, "time elapsed in seconds not less than 30ms: %.5f", dt); //less than 30 ms tick = time_startup(); EXPECT_TICKGT(tick, 0); EXPECT_TICKLT(tick, newtick); EXPECT_TICKEQ(tick, time_startup()); tick = time_system(); thread_sleep(100); newtick = time_system(); EXPECT_TICKGT(tick, 0); EXPECT_TICKGT(newtick, 0); EXPECT_TICKGT(newtick, tick); EXPECT_GT_MSGFORMAT(newtick - tick, 50, "Elapsed system time less than 50ms, expected 100ms, got %" PRId64 "ms", newtick - tick); EXPECT_LT_MSGFORMAT(newtick - tick, 200, "Elapsed system time more than 200ms, expected 100ms, got %" PRId64 "ms", newtick - tick); return 0; }
DECLARE_TEST( time, builtin ) { tick_t tick, newtick, tps; deltatime_t dt; tps = time_ticks_per_second(); EXPECT_GT( tps, 0 ); tick = time_current(); thread_sleep( 20 ); newtick = time_current(); EXPECT_NE( tick, 0 ); EXPECT_GT( newtick, tick ); EXPECT_GT( time_diff( tick, newtick ), 0 ); EXPECT_GT_MSGFORMAT( time_diff( tick, newtick ), ( tps / 100LL ), "time elapsed not more than 10ms: %lld (%lld)", time_diff( tick, newtick ), ( tps / 100LL ) ); //more than 10 ms EXPECT_LT_MSGFORMAT( time_diff( tick, newtick ), ( tps / 30LL ), "time elapsed not less than 30ms: %lld (%lld)", time_diff( tick, newtick ), ( tps / 33LL ) ); //less than 30 ms EXPECT_GT( time_elapsed( tick ), 0 ); EXPECT_GT( time_elapsed( tick ), 0.01f ); //more than 10 ms EXPECT_GT( time_elapsed_ticks( tick ), 0 ); EXPECT_GT( time_elapsed_ticks( tick ), ( tps / 100 ) ); //more than 10 ms dt = time_ticks_to_seconds( newtick - tick ); EXPECT_GT( dt, 0 ); EXPECT_GT_MSGFORMAT( dt, 0.01f, "time elapsed in seconds not more than 10ms: %.5f", dt ); //more than 10 ms EXPECT_LT_MSGFORMAT( dt, 0.03f, "time elapsed in seconds not less than 30ms: %.5f", dt ); //less than 30 ms tick = time_startup(); EXPECT_GT( tick, 0 ); EXPECT_LT( tick, newtick ); EXPECT_EQ( tick, time_startup() ); tick = time_system(); EXPECT_GT( tick, 0 ); thread_sleep( 100 ); newtick = time_system(); EXPECT_GT( newtick, 0 ); EXPECT_GT( newtick, tick ); EXPECT_GT( newtick - tick, 50 ); //more than 50 ms EXPECT_LT( newtick - tick, 200 ); //less than 200 ms return 0; }