changeset 864:177b7f031b28

(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.
author Jim Meyering <jim@meyering.net>
date Thu, 23 Jan 1997 02:16:20 +0000
parents 976c81581386
children 0f8fd76651f6
files m4/mktime.m4
diffstat 1 files changed, 25 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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_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 @@
 
 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 @@
 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)