summaryrefslogtreecommitdiffstats
path: root/common/t-timestuff.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2014-06-25 14:33:34 +0200
committerWerner Koch <wk@gnupg.org>2014-07-03 11:04:23 +0200
commit3533860ee316918dd47501c53e910bfd0032b39d (patch)
tree7eef08982a264738e1be09a959d5f93cd6580f86 /common/t-timestuff.c
parentgpg: Spelling error (diff)
downloadgnupg2-3533860ee316918dd47501c53e910bfd0032b39d.tar.xz
gnupg2-3533860ee316918dd47501c53e910bfd0032b39d.zip
tests: Fix end-of-all-ticks test for Western locales.
* common/t-timestuff.c (test_timegm): Use timegm if available. (main): Set TX to UTC if timegm is not available. -- On OpenBSD 5.3 i386 that test failed due to the use of mktime. Reported-by: Claus Assmann
Diffstat (limited to 'common/t-timestuff.c')
-rw-r--r--common/t-timestuff.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/common/t-timestuff.c b/common/t-timestuff.c
index ec55687c6..f39e3089d 100644
--- a/common/t-timestuff.c
+++ b/common/t-timestuff.c
@@ -112,7 +112,11 @@ test_timegm (void)
tbuf.tm_hour = tvalues[tidx].hour;
tbuf.tm_min = tvalues[tidx].min;
tbuf.tm_sec = tvalues[tidx].sec;
+#ifdef HAVE_TIMEGM
+ now = timegm (&tbuf);
+#else
now = mktime (&tbuf);
+#endif
}
if (now == (time_t)(-1))
fail (tidx);
@@ -122,7 +126,11 @@ test_timegm (void)
fail (tidx);
tbuf = *tp;
tbuf2 = tbuf;
+#ifdef HAVE_TIMEGM
atime = timegm (&tbuf);
+#else
+ atime = mktime (&tbuf);
+#endif
if (atime == (time_t)(-1))
fail (tidx);
if (atime != now)
@@ -146,6 +154,14 @@ main (int argc, char **argv)
(void)argc;
(void)argv;
+ /* If we do not have timegm, we use mktime. However, we need to use
+ UTC in this case so that the 20380118T235959 test does not fail
+ for other timezones. */
+#ifndef HAVE_TIMEGM
+ setenv ("TZ", "UTC", 1);
+ tzset ();
+#endif
+
test_timegm ();
return 0;