#include <gtest/gtest.h>
#include "timestamp.h"
TEST(TIMESTAMP, GET)
{
uint64_t last_sec = 0;
uint64_t last_msec = 0;
uint64_t curr_sec = 0;
uint64_t curr_msec = 0;
timestamp_update();
last_sec = timestamp_get_sec();
last_msec = timestamp_get_msec();
usleep(1000); // 1ms
curr_sec = timestamp_get_sec();
curr_msec = timestamp_get_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 && curr_msec - last_msec <= 2);
usleep(1000 * 1000); // 1s
last_sec = curr_sec;
last_msec = curr_msec;
printf("After usleep(1000 * 1000)\n");
EXPECT_TRUE(curr_sec - last_sec == 1);
EXPECT_TRUE(curr_msec - last_msec >= 1000 && curr_msec - last_msec <= 1001);
}
int main(int argc, char **argv)
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();