diff --git a/.github/workflows/unit_tests.sh b/.github/workflows/unit_tests.sh index dc5bf5dd4fc..c1a5ede3833 100755 --- a/.github/workflows/unit_tests.sh +++ b/.github/workflows/unit_tests.sh @@ -73,7 +73,8 @@ for phase in "${PHASES[@]}"; do MESON_ARGS+=(--fatal-meson-warnings) run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true "${MESON_ARGS[@]}" build ninja -C build -v - meson test -C build --print-errorlogs + # Ensure setting a timezone (like the reproducible build tests do) does not break time/date unit tests + TZ=GMT+12 meson test -C build --print-errorlogs ;; RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS) MESON_ARGS=(--optimization=1) diff --git a/src/test/test-calendarspec.c b/src/test/test-calendarspec.c index db64142f01c..18a0f8f8bfd 100644 --- a/src/test/test-calendarspec.c +++ b/src/test/test-calendarspec.c @@ -254,4 +254,11 @@ TEST(calendar_spec_from_string) { assert_se(calendar_spec_from_string("*:4,30:*\n", &c) == -EINVAL); } -DEFINE_TEST_MAIN(LOG_INFO); +static int intro(void) { + /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ + assert_se(unsetenv("TZ") >= 0); + + return EXIT_SUCCESS; +} + +DEFINE_TEST_MAIN_WITH_INTRO(LOG_INFO, intro); diff --git a/src/test/test-date.c b/src/test/test-date.c index a7058a33d42..162ac342f50 100644 --- a/src/test/test-date.c +++ b/src/test/test-date.c @@ -62,6 +62,9 @@ static void test_one_noutc(const char *p) { } int main(int argc, char *argv[]) { + /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ + assert_se(unsetenv("TZ") >= 0); + test_setup_logging(LOG_DEBUG); test_one("17:41"); diff --git a/src/test/test-time-util.c b/src/test/test-time-util.c index d29afa38dd2..9ce014dc9e3 100644 --- a/src/test/test-time-util.c +++ b/src/test/test-time-util.c @@ -1171,6 +1171,9 @@ TEST(timezone_offset_change) { } static int intro(void) { + /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ + assert_se(unsetenv("TZ") >= 0); + log_info("realtime=" USEC_FMT "\n" "monotonic=" USEC_FMT "\n" "boottime=" USEC_FMT "\n",