diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2024-12-14 08:49:54 +0100 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2024-12-14 16:23:52 +0100 |
commit | 3f1d499964abb6a4c0141d7ea8f852829880adff (patch) | |
tree | b2c872f681252be0b5ec93b4e057dfcadf6f4616 /src/test | |
parent | mkosi: fix section for WithNetwork= (diff) | |
download | systemd-3f1d499964abb6a4c0141d7ea8f852829880adff.tar.xz systemd-3f1d499964abb6a4c0141d7ea8f852829880adff.zip |
test-time-util: fix truncation of usec to sec
Also
- use ASSERT_XYZ() macros,
- log tzname[] on failure.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test-time-util.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/test/test-time-util.c b/src/test/test-time-util.c index d761261e24..d717ca94d2 100644 --- a/src/test/test-time-util.c +++ b/src/test/test-time-util.c @@ -393,27 +393,31 @@ TEST(format_timestamp) { static void test_format_timestamp_impl(usec_t x) { bool success, override; const char *xx, *yy; - usec_t y; + usec_t y, x_sec, y_sec; xx = FORMAT_TIMESTAMP(x); - assert_se(xx); - assert_se(parse_timestamp(xx, &y) >= 0); + ASSERT_NOT_NULL(xx); + ASSERT_OK(parse_timestamp(xx, &y)); yy = FORMAT_TIMESTAMP(y); - assert_se(yy); + ASSERT_NOT_NULL(yy); - success = (x / USEC_PER_SEC == y / USEC_PER_SEC) && streq(xx, yy); + x_sec = x / USEC_PER_SEC; + y_sec = y / USEC_PER_SEC; + success = (x_sec == y_sec) && streq(xx, yy); /* Workaround for https://github.com/systemd/systemd/issues/28472 * and https://github.com/systemd/systemd/pull/35471. */ override = !success && (STRPTR_IN_SET(tzname[0], "CAT", "EAT", "WET") || STRPTR_IN_SET(tzname[1], "CAT", "EAT", "WET")) && - DIV_ROUND_UP(x > y ? x - y : y - x, USEC_PER_SEC) == 3600; /* 1 hour, ignore fractional second */ + (x_sec > y_sec ? x_sec - y_sec : y_sec - x_sec) == 3600; /* 1 hour, ignore fractional second */ log_full(success ? LOG_DEBUG : override ? LOG_WARNING : LOG_ERR, "@" USEC_FMT " → %s → @" USEC_FMT " → %s%s", x, xx, y, yy, override ? ", ignoring." : ""); if (!override) { - assert_se(x / USEC_PER_SEC == y / USEC_PER_SEC); + if (!success) + log_warning("tzname[0]=\"%s\", tzname[1]=\"%s\"", tzname[0], tzname[1]); + ASSERT_EQ(x_sec, y_sec); ASSERT_STREQ(xx, yy); } } |