stellar support monotonic time and real time
This commit is contained in:
43
src/times/test/gtest_times.cpp
Normal file
43
src/times/test/gtest_times.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "times.h"
|
||||
|
||||
TEST(TIMES, TEST)
|
||||
{
|
||||
uint64_t last_sec = 0;
|
||||
uint64_t last_msec = 0;
|
||||
uint64_t curr_sec = 0;
|
||||
uint64_t curr_msec = 0;
|
||||
|
||||
stellar_update_time_cache();
|
||||
last_sec = stellar_get_monotonic_time_sec();
|
||||
last_msec = stellar_get_monotonic_time_msec();
|
||||
|
||||
usleep(1000); // 1ms
|
||||
stellar_update_time_cache();
|
||||
curr_sec = stellar_get_monotonic_time_sec();
|
||||
curr_msec = stellar_get_monotonic_time_msec();
|
||||
printf("After usleep(1000)\n");
|
||||
printf("last_sec: %lu, last_msec: %lu\n", last_sec, last_msec);
|
||||
printf("curr_sec: %lu, curr_msec: %lu\n", curr_sec, curr_msec);
|
||||
EXPECT_TRUE(curr_sec == last_sec);
|
||||
EXPECT_TRUE(curr_msec - last_msec >= 1);
|
||||
|
||||
usleep(1000 * 1000); // 1s
|
||||
stellar_update_time_cache();
|
||||
last_sec = curr_sec;
|
||||
last_msec = curr_msec;
|
||||
curr_sec = stellar_get_monotonic_time_sec();
|
||||
curr_msec = stellar_get_monotonic_time_msec();
|
||||
printf("After usleep(1000 * 1000)\n");
|
||||
printf("last_sec: %lu, last_msec: %lu\n", last_sec, last_msec);
|
||||
printf("curr_sec: %lu, curr_msec: %lu\n", curr_sec, curr_msec);
|
||||
EXPECT_TRUE(curr_sec - last_sec == 1);
|
||||
EXPECT_TRUE(curr_msec - last_msec >= 1000);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
Reference in New Issue
Block a user