#include #include #include extern "C" { #include "time.c" } TEST(time, init) { di_time_init(); } TEST(time, get_uptime) { uint64_t t; /* min 0, msec 0 */ t = di_time_get_uptime(); EXPECT_EQ(static_cast(0), t); /* min 0, msec 1 */ di_time_tick(); t = di_time_get_uptime(); EXPECT_EQ(static_cast(1), t); /* min 1, msec 0 */ for (unsigned int i = 0; i < 59999; i++) di_time_tick(); t = di_time_get_uptime(); EXPECT_EQ(static_cast(60000), t); /* min 1, msec 0 */ di_time_tick(); t = di_time_get_uptime(); EXPECT_EQ(static_cast(60001), t); // Reset all for further tests di_time_reset(); /* min 0, msec 0 */ t = di_time_get_uptime(); EXPECT_EQ(static_cast(0), t); } TEST(time, get_stamp) { uint64_t t; /* min 0, msec 0 */ t = di_time_get_stamp(); EXPECT_EQ(static_cast(0), t); /* min 0, msec 1 */ di_time_tick(); t = di_time_get_stamp(); EXPECT_EQ(static_cast(1), t); /* min 1, msec 0 */ for (unsigned int i = 0; i < 59999; i++) di_time_tick(); t = di_time_get_stamp(); EXPECT_EQ(static_cast(60000), t); /* min 1, msec 0 */ di_time_tick(); t = di_time_get_stamp(); EXPECT_EQ(static_cast(60001), t); // Reset all for further tests di_time_reset(); /* min 0, msec 0 */ t = di_time_get_stamp(); EXPECT_EQ(static_cast(0), t); } TEST(time, set) { uint64_t t; /* Invalid min 0, msec 0 */ t = di_time_get_stamp(); EXPECT_EQ(static_cast(0), t); /* 1 sec since 1970 to timestamp */ di_time_set(1); t = di_time_get_stamp(); EXPECT_EQ(static_cast(1000), t); /* 2015-01-01T00:00:00 */ di_time_set(1420070400); t = di_time_get_stamp(); EXPECT_EQ(static_cast(1420070400UL * 1000UL), t); } TEST(time, set_ms) { uint64_t t; di_time_reset(); /* Invalid min 0, msec 0 */ t = di_time_get_stamp(); EXPECT_EQ(static_cast(0), t); /* 1 sec since 1970 to timestamp in milliseconds */ di_time_set_ms(1234); t = di_time_get_stamp(); EXPECT_EQ(static_cast(1234), t); /* 2015-01-01T00:00:00 */ di_time_set_ms(14200704003456); t = di_time_get_stamp(); EXPECT_EQ(static_cast(14200704003456UL), t); } /** @todo ... real test */ TEST(time, tick_pps) { di_time_tick_pps(); } TEST(time, days_in_month_invalid) { EXPECT_EQ(0U, _di_time_days_in_month(0, 1970)); EXPECT_EQ(0U, _di_time_days_in_month(13, 1970)); EXPECT_EQ(0U, _di_time_days_in_month(0, 2015)); EXPECT_EQ(0U, _di_time_days_in_month(13, 2015)); } TEST(time, datetime_to_unix_invalidCases) { // Invalid month 0 (test di_time_days_in_month switch case default) // 2015-00-01T00:00:00 -> 0 (unix) EXPECT_EQ(static_cast(0), di_time_datetime_to_unix( 2015, // year 0, // month 1, // day 0, // hour 0, // min 0 // sec )); // Invalid month 13 (test di_time_days_in_month switch case default) // 2015-13-01T00:00:00 -> 0 (unix) EXPECT_EQ(static_cast(0), di_time_datetime_to_unix( 2015, // year 13, // month 1, // day 0, // hour 0, // min 0 // sec )); } TEST(time, datetime_to_unix) { // 01-01-1970T00:00:00 -> 0 EXPECT_EQ(static_cast(0), di_time_datetime_to_unix( 1970, // year 1, // month 1, // day 0, // hour 0, // min 0 // sec )); // 01-01-2015T00:00:00 -> 1420070400 EXPECT_EQ(static_cast(1420070400), di_time_datetime_to_unix( 2015, // year 1, // month 1, // day 0, // hour 0, // min 0 // sec )); // 2015-07-01T01:02:03 -> 1435712523 (unix) EXPECT_EQ(static_cast(1435712523), di_time_datetime_to_unix( 2015, // year 7, // month 1, // day 1, // hour 2, // min 3 // sec )); // Test leap year getting of amount of days in month februari // 2016-03-01T23:59:59 -> 1456876799 (unix) EXPECT_EQ(static_cast(1456876799), di_time_datetime_to_unix( 2016, // year 3, // month 1, // day 23, // hour 59, // min 59 // sec )); // Invalid month (test di_time_days_in_month switch case default) // 2016-14-01T23:59:59 -> 1456876799 (unix) di_time_datetime_to_unix( 2016, // year 14, // month 1, // day 23, // hour 59, // min 59 // sec ); // 01-01-2025T00:00:00 -> 1735689600 EXPECT_EQ(static_cast(1735689600), di_time_datetime_to_unix( 2025, // year 1, // month 1, // day 0, // hour 0, // min 0 // sec )); // 01-01-2035T00:00:00 -> 2051222400 EXPECT_EQ(static_cast(2051222400), di_time_datetime_to_unix( 2035, // year 1, // month 1, // day 0, // hour 0, // min 0 // sec )); // 01-01-2050T00:00:00 -> 2524608000 EXPECT_EQ(static_cast(2524608000), di_time_datetime_to_unix( 2050, // year 1, // month 1, // day 0, // hour 0, // min 0 // sec )); }