]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/test/test-time-util.c
test: Use TEST macro
[thirdparty/systemd.git] / src / test / test-time-util.c
index 0992a316598086456c48d13dfa2026ba5a79018c..4d0131827ed401b6726bc92779adac035f6a815e 100644 (file)
@@ -8,11 +8,9 @@
 #include "tests.h"
 #include "time-util.h"
 
-static void test_parse_sec(void) {
+TEST(parse_sec) {
         usec_t u;
 
-        log_info("/* %s */", __func__);
-
         assert_se(parse_sec("5s", &u) >= 0);
         assert_se(u == 5 * USEC_PER_SEC);
         assert_se(parse_sec("5s500ms", &u) >= 0);
@@ -72,11 +70,9 @@ static void test_parse_sec(void) {
         assert_se(parse_sec("1234..", &u) < 0);
 }
 
-static void test_parse_sec_fix_0(void) {
+TEST(parse_sec_fix_0) {
         usec_t u;
 
-        log_info("/* %s */", __func__);
-
         assert_se(parse_sec_fix_0("5s", &u) >= 0);
         assert_se(u == 5 * USEC_PER_SEC);
         assert_se(parse_sec_fix_0("0s", &u) >= 0);
@@ -87,11 +83,9 @@ static void test_parse_sec_fix_0(void) {
         assert_se(u == USEC_INFINITY);
 }
 
-static void test_parse_sec_def_infinity(void) {
+TEST(parse_sec_def_infinity) {
         usec_t u;
 
-        log_info("/* %s */", __func__);
-
         assert_se(parse_sec_def_infinity("5s", &u) >= 0);
         assert_se(u == 5 * USEC_PER_SEC);
         assert_se(parse_sec_def_infinity("", &u) >= 0);
@@ -107,11 +101,9 @@ static void test_parse_sec_def_infinity(void) {
         assert_se(parse_sec_def_infinity("-5s", &u) < 0);
 }
 
-static void test_parse_time(void) {
+TEST(parse_time) {
         usec_t u;
 
-        log_info("/* %s */", __func__);
-
         assert_se(parse_time("5", &u, 1) >= 0);
         assert_se(u == 5);
 
@@ -134,11 +126,9 @@ static void test_parse_time(void) {
         assert_se(parse_time("1.1111111111111y", &u, 1) >= 0);
 }
 
-static void test_parse_nsec(void) {
+TEST(parse_nsec) {
         nsec_t u;
 
-        log_info("/* %s */", __func__);
-
         assert_se(parse_nsec("5s", &u) >= 0);
         assert_se(u == 5 * NSEC_PER_SEC);
         assert_se(parse_nsec("5s500ms", &u) >= 0);
@@ -217,7 +207,7 @@ static void test_format_timespan_one(usec_t x, usec_t accuracy) {
         assert_se(x / accuracy == y / accuracy);
 }
 
-static void test_format_timespan(usec_t accuracy) {
+static void test_format_timespan_accuracy(usec_t accuracy) {
         log_info("/* %s accuracy="USEC_FMT" */", __func__, accuracy);
 
         test_format_timespan_one(0, accuracy);
@@ -244,9 +234,13 @@ static void test_format_timespan(usec_t accuracy) {
         test_format_timespan_one(USEC_INFINITY, accuracy);
 }
 
-static void test_verify_timezone(void) {
-        log_info("/* %s */", __func__);
+TEST(format_timespan) {
+        test_format_timespan_accuracy(1);
+        test_format_timespan_accuracy(USEC_PER_MSEC);
+        test_format_timespan_accuracy(USEC_PER_SEC);
+}
 
+TEST(verify_timezone) {
         assert_se(verify_timezone("Europe/Berlin", LOG_DEBUG) == 0);
         assert_se(verify_timezone("Australia/Sydney", LOG_DEBUG) == 0);
         assert_se(verify_timezone("Europe/Do not exist", LOG_DEBUG) == -EINVAL);
@@ -255,21 +249,17 @@ static void test_verify_timezone(void) {
         assert_se(verify_timezone("DoNotExist/", LOG_DEBUG) == -EINVAL);
 }
 
-static void test_timezone_is_valid(void) {
-        log_info("/* %s */", __func__);
-
+TEST(timezone_is_valid) {
         assert_se(timezone_is_valid("Europe/Berlin", LOG_ERR));
         assert_se(timezone_is_valid("Australia/Sydney", LOG_ERR));
         assert_se(!timezone_is_valid("Europe/Do not exist", LOG_ERR));
 }
 
-static void test_get_timezones(void) {
+TEST(get_timezones) {
         _cleanup_strv_free_ char **zones = NULL;
         int r;
         char **zone;
 
-        log_info("/* %s */", __func__);
-
         r = get_timezones(&zones);
         assert_se(r == 0);
 
@@ -280,9 +270,7 @@ static void test_get_timezones(void) {
         }
 }
 
-static void test_usec_add(void) {
-        log_info("/* %s */", __func__);
-
+TEST(usec_add) {
         assert_se(usec_add(0, 0) == 0);
         assert_se(usec_add(1, 4) == 5);
         assert_se(usec_add(USEC_INFINITY, 5) == USEC_INFINITY);
@@ -293,9 +281,7 @@ static void test_usec_add(void) {
         assert_se(usec_add(USEC_INFINITY, 2) == USEC_INFINITY);
 }
 
-static void test_usec_sub_unsigned(void) {
-        log_info("/* %s */", __func__);
-
+TEST(usec_sub_unsigned) {
         assert_se(usec_sub_unsigned(0, 0) == 0);
         assert_se(usec_sub_unsigned(0, 2) == 0);
         assert_se(usec_sub_unsigned(0, USEC_INFINITY) == 0);
@@ -316,9 +302,7 @@ static void test_usec_sub_unsigned(void) {
         assert_se(usec_sub_unsigned(USEC_INFINITY, USEC_INFINITY) == USEC_INFINITY);
 }
 
-static void test_usec_sub_signed(void) {
-        log_info("/* %s */", __func__);
-
+TEST(usec_sub_signed) {
         assert_se(usec_sub_signed(0, 0) == 0);
         assert_se(usec_sub_signed(4, 1) == 3);
         assert_se(usec_sub_signed(4, 4) == 0);
@@ -329,9 +313,7 @@ static void test_usec_sub_signed(void) {
         assert_se(usec_sub_signed(USEC_INFINITY, 5) == USEC_INFINITY);
 }
 
-static void test_format_timestamp(void) {
-        log_info("/* %s */", __func__);
-
+TEST(format_timestamp) {
         for (unsigned i = 0; i < 100; i++) {
                 char buf[MAX(FORMAT_TIMESTAMP_MAX, FORMAT_TIMESPAN_MAX)];
                 usec_t x, y;
@@ -370,9 +352,7 @@ static void test_format_timestamp(void) {
         }
 }
 
-static void test_FORMAT_TIMESTAMP(void) {
-        log_info("/* %s */", __func__);
-
+TEST(FORMAT_TIMESTAMP) {
         for (unsigned i = 0; i < 100; i++) {
                 _cleanup_free_ char *buf;
                 usec_t x, y;
@@ -389,9 +369,7 @@ static void test_FORMAT_TIMESTAMP(void) {
         }
 }
 
-static void test_format_timestamp_relative(void) {
-        log_info("/* %s */", __func__);
-
+TEST(format_timestamp_relative) {
         char buf[MAX(FORMAT_TIMESTAMP_MAX, FORMAT_TIMESPAN_MAX)];
         usec_t x;
 
@@ -471,9 +449,7 @@ static void test_format_timestamp_utc_one(usec_t val, const char *result) {
         assert_se(streq_ptr(t, result));
 }
 
-static void test_format_timestamp_utc(void) {
-        log_info("/* %s */", __func__);
-
+TEST(format_timestamp_utc) {
         test_format_timestamp_utc_one(0, NULL);
         test_format_timestamp_utc_one(1, "Thu 1970-01-01 00:00:00 UTC");
         test_format_timestamp_utc_one(USEC_PER_SEC, "Thu 1970-01-01 00:00:01 UTC");
@@ -489,12 +465,10 @@ static void test_format_timestamp_utc(void) {
         test_format_timestamp_utc_one(USEC_INFINITY, NULL);
 }
 
-static void test_deserialize_dual_timestamp(void) {
+TEST(deserialize_dual_timestamp) {
         int r;
         dual_timestamp t;
 
-        log_info("/* %s */", __func__);
-
         r = deserialize_dual_timestamp("1234 5678", &t);
         assert_se(r == 0);
         assert_se(t.realtime == 1234);
@@ -539,11 +513,9 @@ static void assert_similar(usec_t a, usec_t b) {
         assert_se(d < 10*USEC_PER_SEC);
 }
 
-static void test_usec_shift_clock(void) {
+TEST(usec_shift_clock) {
         usec_t rt, mn, bt;
 
-        log_info("/* %s */", __func__);
-
         rt = now(CLOCK_REALTIME);
         mn = now(CLOCK_MONOTONIC);
         bt = now(clock_boottime_or_monotonic());
@@ -568,9 +540,7 @@ static void test_usec_shift_clock(void) {
         }
 }
 
-static void test_in_utc_timezone(void) {
-        log_info("/* %s */", __func__);
-
+TEST(in_utc_timezone) {
         const char *tz = getenv("TZ");
 
         assert_se(setenv("TZ", ":UTC", 1) >= 0);
@@ -589,13 +559,10 @@ static void test_in_utc_timezone(void) {
         tzset();
 }
 
-static void test_map_clock_usec(void) {
+TEST(map_clock_usec) {
         usec_t nowr, x, y, z;
 
-        log_info("/* %s */", __func__);
-        nowr = now(CLOCK_REALTIME);
-
-        x = nowr; /* right now */
+        x = nowr = now(CLOCK_REALTIME); /* right now */
         y = map_clock_usec(x, CLOCK_REALTIME, CLOCK_MONOTONIC);
         z = map_clock_usec(y, CLOCK_MONOTONIC, CLOCK_REALTIME);
         /* Converting forth and back will introduce inaccuracies, since we cannot query both clocks atomically, but it should be small. Even on the slowest CI smaller than 1h */
@@ -621,9 +588,7 @@ static void test_map_clock_usec(void) {
         }
 }
 
-int main(int argc, char *argv[]) {
-        test_setup_logging(LOG_INFO);
-
+static void setup_test(void) {
         log_info("realtime=" USEC_FMT "\n"
                  "monotonic=" USEC_FMT "\n"
                  "boottime=" USEC_FMT "\n",
@@ -631,29 +596,6 @@ int main(int argc, char *argv[]) {
                  now(CLOCK_MONOTONIC),
                  now(clock_boottime_or_monotonic()));
 
-        test_parse_sec();
-        test_parse_sec_fix_0();
-        test_parse_sec_def_infinity();
-        test_parse_time();
-        test_parse_nsec();
-        test_format_timespan(1);
-        test_format_timespan(USEC_PER_MSEC);
-        test_format_timespan(USEC_PER_SEC);
-        test_verify_timezone();
-        test_timezone_is_valid();
-        test_get_timezones();
-        test_usec_add();
-        test_usec_sub_signed();
-        test_usec_sub_unsigned();
-        test_format_timestamp();
-        test_FORMAT_TIMESTAMP();
-        test_format_timestamp_relative();
-        test_format_timestamp_utc();
-        test_deserialize_dual_timestamp();
-        test_usec_shift_clock();
-        test_in_utc_timezone();
-        test_map_clock_usec();
-
         /* Ensure time_t is signed */
         assert_cc((time_t) -1 < (time_t) 1);
 
@@ -661,6 +603,6 @@ int main(int argc, char *argv[]) {
         uintmax_t x = TIME_T_MAX;
         x++;
         assert_se((time_t) x < 0);
-
-        return 0;
 }
+
+DEFINE_CUSTOM_TEST_MAIN(LOG_INFO, setup_test(), /* no outro */);