Implement new sf::Clock functions

This commit is contained in:
Chris Thrasher committed 2024-09-20 17:08:32 -05:00
1 parent fbe6e6193f
commit 4ef89bb387
3 files changed
+133 -12

No files matched your search

+56 -12
View File
@@ -6,20 +6,64 @@
TEST_CASE("[System] sfClock")
{
sfClock* clock = sfClock_create();
using namespace std::chrono_literals;
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 0);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 1'000);
SECTION("sfClock_create/sfClock_copy")
{
const sfClock* clock1 = sfClock_create();
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock1)) >= 0);
CHECK(sfClock_isRunning(clock1));
sfClock_restart(clock);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 0);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 1'000);
const auto elapsed = sfClock_getElapsedTime(clock1);
const sfClock* clock2 = sfClock_copy(clock1);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock2)) >= sfTime_asMicroseconds(elapsed));
CHECK(sfClock_isRunning(clock2));
sfClock* anotherClock = sfClock_copy(clock);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(anotherClock)) >= 1'000);
sfClock_destroy(clock2);
sfClock_destroy(clock1);
}
sfClock_destroy(anotherClock);
sfClock_destroy(clock);
SECTION("sfClock_getElapsedTime")
{
const sfClock* clock = sfClock_create();
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 0);
const auto elapsed = sfClock_getElapsedTime(clock);
std::this_thread::sleep_for(1ms);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= sfTime_asMicroseconds(elapsed));
sfClock_destroy(clock);
}
SECTION("sfClock_start/sfClock_stop")
{
sfClock* clock = sfClock_create();
sfClock_stop(clock);
CHECK(!sfClock_isRunning(clock));
const auto elapsed = sfClock_getElapsedTime(clock);
std::this_thread::sleep_for(1ms);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) == sfTime_asMicroseconds(elapsed));
sfClock_start(clock);
CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= sfTime_asMicroseconds(elapsed));
CHECK(sfClock_isRunning(clock));
sfClock_destroy(clock);
}
SECTION("sfClock_restart")
{
sfClock* clock = sfClock_create();
CHECK(sfTime_asMicroseconds(sfClock_restart(clock)) >= 0);
CHECK(sfClock_isRunning(clock));
std::this_thread::sleep_for(1ms);
const auto elapsed = sfClock_restart(clock);
CHECK(sfTime_asMicroseconds(sfClock_restart(clock)) < sfTime_asMicroseconds(elapsed));
sfClock_destroy(clock);
}
SECTION("sfClock_reset")
{
sfClock* clock = sfClock_create();
CHECK(sfTime_asMicroseconds(sfClock_reset(clock)) >= 0);
CHECK(!sfClock_isRunning(clock));
sfClock_destroy(clock);
}
}