summaryrefslogtreecommitdiff
path: root/tests/lib/libutil
diff options
context:
space:
mode:
authorapb <apb@NetBSD.org>2014-10-08 13:26:47 +0000
committerapb <apb@NetBSD.org>2014-10-08 13:26:47 +0000
commit45dfb90d4be84a2fe978b9d64ba44cbbdec08d90 (patch)
tree34327c92e3d0388d2e3383f7624106aee8f38d41 /tests/lib/libutil
parenta52f5b226f2b8ca51b7042246dfb4860073ca446 (diff)
Add tests for PR lib/47916. Some of these fail.
Diffstat (limited to 'tests/lib/libutil')
-rw-r--r--tests/lib/libutil/t_parsedate.c48
1 files changed, 46 insertions, 2 deletions
diff --git a/tests/lib/libutil/t_parsedate.c b/tests/lib/libutil/t_parsedate.c
index 005ba20b1ac..18e56af52a5 100644
--- a/tests/lib/libutil/t_parsedate.c
+++ b/tests/lib/libutil/t_parsedate.c
@@ -1,4 +1,4 @@
-/* $NetBSD: t_parsedate.c,v 1.10 2014/10/07 22:33:52 apb Exp $ */
+/* $NetBSD: t_parsedate.c,v 1.11 2014/10/08 13:26:47 apb Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: t_parsedate.c,v 1.10 2014/10/07 22:33:52 apb Exp $");
+__RCSID("$NetBSD: t_parsedate.c,v 1.11 2014/10/08 13:26:47 apb Exp $");
#include <atf-c.h>
#include <errno.h>
@@ -147,6 +147,49 @@ ATF_TC_BODY(times, tc)
ANY, ANY, ANY, 12+5, 21, 0);
}
+ATF_TC(dsttimes);
+
+ATF_TC_HEAD(dsttimes, tc)
+{
+ atf_tc_set_md_var(tc, "descr", "Test DST transition times"
+ " (PR lib/47916)");
+}
+
+ATF_TC_BODY(dsttimes, tc)
+{
+ struct tm tm;
+ time_t t;
+ int tzoff;
+
+ putenv(__UNCONST("TZ=EST"));
+ tzset();
+ parsecheck("12:0", NULL, NULL, localtime_r,
+ ANY, ANY, ANY, 12, 0, 0);
+
+ putenv(__UNCONST("TZ=Japan"));
+ tzset();
+ parsecheck("12:0", NULL, NULL, localtime_r,
+ ANY, ANY, ANY, 12, 0, 0);
+
+ /*
+ * When the effective local time is Tue Jul 9 13:21:53 BST 2013,
+ * check mktime("14:00")
+ */
+ putenv(__UNCONST("TZ=Europe/London"));
+ tzset();
+ tm = (struct tm){
+ .tm_year = 2013-1900, .tm_mon = 7-1, .tm_mday = 9,
+ .tm_hour = 13, .tm_min = 21, .tm_sec = 53,
+ .tm_isdst = 0 };
+ t = mktime(&tm);
+ ATF_CHECK(t != (time_t)-1);
+ parsecheck("14:00", &t, NULL, localtime_r,
+ 2013, 7, 9, 14, 0, 0);
+ tzoff = 0;
+ parsecheck("14:00", &t, &tzoff, localtime_r,
+ 2013, 7, 9, 14, 0, 0);
+}
+
ATF_TC(relative);
ATF_TC_HEAD(relative, tc)
@@ -206,6 +249,7 @@ ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, dates);
ATF_TP_ADD_TC(tp, times);
+ ATF_TP_ADD_TC(tp, dsttimes);
ATF_TP_ADD_TC(tp, relative);
ATF_TP_ADD_TC(tp, atsecs);