diff options
Diffstat (limited to 'timezone')
-rw-r--r-- | timezone/Makefile | 6 | ||||
-rw-r--r-- | timezone/tst-timezone.c | 39 |
2 files changed, 43 insertions, 2 deletions
diff --git a/timezone/Makefile b/timezone/Makefile index c0a9bc1..6420862 100644 --- a/timezone/Makefile +++ b/timezone/Makefile @@ -53,7 +53,7 @@ define nl endef -ifndef avoid-generated +ifndef no_deps -include $(addprefix $(objpfx)z.,$(tzfiles)) endif @@ -178,7 +178,7 @@ $(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC) $(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \ Europe/Berlin Universal \ Australia/Melbourne \ - America/Sao_Paulo Asia/Tokyo) + America/Sao_Paulo Asia/Tokyo GB) test-tz-ENV = TZDIR=$(testdata) tst-timezone-ENV = TZDIR=$(testdata) @@ -204,6 +204,8 @@ $(testdata)/America/Sao_Paulo: southamerica $(objpfx)zic $(leapseconds) \ $(build-testdata) $(testdata)/Asia/Tokyo: asia $(objpfx)zic $(leapseconds) yearistype $(build-testdata) +$(testdata)/GB: europe $(objpfx)zic $(leapseconds) yearistype + $(build-testdata) $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make diff --git a/timezone/tst-timezone.c b/timezone/tst-timezone.c index e866b94..94b9d2d 100644 --- a/timezone/tst-timezone.c +++ b/timezone/tst-timezone.c @@ -39,6 +39,7 @@ static const struct test_times tests[] = { "Universal", 0, 0, {"UTC", "UTC" }}, { "Australia/Melbourne", 1, -36000, { "EST", "EST" }}, { "America/Sao_Paulo", 1, 10800, {"EST", "EDT" }}, + { "America/Chicago", 1, 21600, {"CST", "CDT" }}, { "America/Los_Angeles", 1, 28800, {"PST", "PDT" }}, { "Asia/Tokyo", 0, -32400, {"JST", "JST" }}, { NULL, 0, 0 } @@ -113,5 +114,43 @@ main (int argc, char ** argv) check_tzvars (pt->name, pt->daylight, pt->timezone, pt->tzname); } +#if 0 + /* From a port of Scott Harrington <seh4@ix.netcom.com> to the timezone + mailing list. */ + { + struct tm tmBuf = {0, 0, 0, 10, 3, 98, 0, 0, -1}; + char buf[200]; + putenv ("TZ=GB"); + t = mktime (&tmBuf); + snprintf (buf, sizeof (buf), "TZ=%s %ld %d %d %d %d %d %d %d %d %d", + getenv ("TZ"), t, + tmBuf.tm_sec, tmBuf.tm_min, tmBuf.tm_hour, + tmBuf.tm_mday, tmBuf.tm_mon, tmBuf.tm_year, + tmBuf.tm_wday, tmBuf.tm_yday, tmBuf.tm_isdst); + fputs (buf, stdout); + puts (" should be"); + puts ("TZ=GB 892162800 0 0 0 10 3 98 5 99 1"); + failed |= strcmp (buf, "TZ=GB 892162800 0 0 0 10 3 98 5 99 1") != 0; + } + + printf("\n"); + + { + struct tm tmBuf = {0, 0, 0, 10, 3, 98, 0, 0, -1}; + char buf[200]; + putenv ("TZ=GMT"); + t = mktime (&tmBuf); + snprintf (buf, sizeof (buf), "TZ=%s %ld %d %d %d %d %d %d %d %d %d", + getenv ("TZ"), t, + tmBuf.tm_sec, tmBuf.tm_min, tmBuf.tm_hour, + tmBuf.tm_mday, tmBuf.tm_mon, tmBuf.tm_year, + tmBuf.tm_wday, tmBuf.tm_yday, tmBuf.tm_isdst); + fputs (buf, stdout); + puts (" should be"); + puts ("TZ=GMT 892166400 0 0 0 10 3 98 5 99 0"); + failed |= strcmp (buf, "TZ=GMT 892166400 0 0 0 10 3 98 5 99 0") != 0; + } +#endif + return failed ? EXIT_FAILURE : EXIT_SUCCESS; } |