diff options
author | Jim Meyering <jim@meyering.net> | 1997-01-23 02:16:20 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1997-01-23 02:16:20 +0000 |
commit | 63571532a24c71840f033a320bedf65a47e7e762 (patch) | |
tree | e48a3abc0a1c2803ff9ab47079d8111932444f86 | |
parent | 82b01ee905a74b38b729beccd8c85afd0cc3fa83 (diff) | |
download | coreutils-63571532a24c71840f033a320bedf65a47e7e762.tar.xz |
(AM_FUNC_MKTIME): Run tests for each of a few values
for the TZ environment variable. Andre Novaes Cunha provided the
hairy TZ setting that exercized the Solaris tzset bug.
-rw-r--r-- | m4/mktime.m4 | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/m4/mktime.m4 b/m4/mktime.m4 index c0fcf198b..4be030aa1 100644 --- a/m4/mktime.m4 +++ b/m4/mktime.m4 @@ -1,3 +1,5 @@ +#serial 2 + dnl From Jim Meyering. dnl FIXME: this should migrate into libit. @@ -5,7 +7,9 @@ AC_DEFUN(AM_FUNC_MKTIME, [AC_REQUIRE([AC_HEADER_TIME])dnl AC_CHECK_HEADERS(sys/time.h) AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime, - [AC_TRY_RUN([/* Test program from Paul Eggert (eggert@twinsun.com) + [AC_TRY_RUN( +changequote(<<, >>)dnl +<</* Test program from Paul Eggert (eggert@twinsun.com) and Tony Leneis (tony@plaza.ds.adp.com). */ #if TIME_WITH_SYS_TIME # include <sys/time.h> @@ -20,6 +24,12 @@ AC_DEFUN(AM_FUNC_MKTIME, static time_t time_t_max; +/* Values we'll use to set the TZ environment variable. */ +static const char *const tz_strings[] = { + NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + static void mktime_test (now) time_t now; @@ -35,17 +45,26 @@ int main () { time_t t, delta; + int i; + for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) continue; time_t_max--; delta = time_t_max / 997; /* a suitable prime number */ - for (t = 0; t <= time_t_max - delta; t += delta) - mktime_test (t); - mktime_test ((time_t) 60 * 60); - mktime_test ((time_t) 60 * 60 * 24); + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv (tz_strings[i]); + + for (t = 0; t <= time_t_max - delta; t += delta) + mktime_test (t); + mktime_test ((time_t) 60 * 60); + mktime_test ((time_t) 60 * 60 * 24); + } exit (0); } - ], + >>, +changequote([, ])dnl am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no, dnl When crosscompiling, assume mktime is missing or broken. am_cv_func_working_mktime=no) |