diff options
Diffstat (limited to 'REORG.TODO/time/tst-mktime.c')
-rw-r--r-- | REORG.TODO/time/tst-mktime.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/REORG.TODO/time/tst-mktime.c b/REORG.TODO/time/tst-mktime.c new file mode 100644 index 0000000000..c1473600dd --- /dev/null +++ b/REORG.TODO/time/tst-mktime.c @@ -0,0 +1,73 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> + +static int +do_test (void) +{ + struct tm time_str, *tm; + time_t t; + char daybuf[20]; + int result; + + time_str.tm_year = 2001 - 1900; + time_str.tm_mon = 7 - 1; + time_str.tm_mday = 4; + time_str.tm_hour = 0; + time_str.tm_min = 0; + time_str.tm_sec = 1; + time_str.tm_isdst = -1; + + if (mktime (&time_str) == -1) + { + (void) puts ("-unknown-"); + result = 1; + } + else + { + (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str); + (void) puts (daybuf); + result = strcmp (daybuf, "Wednesday") != 0; + } + + setenv ("TZ", "EST+5", 1); +#define EVENING69 1 * 60 * 60 + 2 * 60 + 29 + t = EVENING69; + tm = localtime (&t); + if (tm == NULL) + { + (void) puts ("localtime returned NULL"); + result = 1; + } + else + { + time_str = *tm; + t = mktime (&time_str); + if (t != EVENING69) + { + printf ("mktime returned %ld, expected %d\n", + (long) t, EVENING69); + result = 1; + } + else + (void) puts ("Dec 31 1969 EST test passed"); + + setenv ("TZ", "CET-1", 1); + t = mktime (&time_str); +#define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60) + if (t != EVENING69_CET) + { + printf ("mktime returned %ld, expected %ld\n", + (long) t, (long) EVENING69_CET); + result = 1; + } + else + (void) puts ("Dec 31 1969 CET test passed"); + } + + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |