(main): Add new tests.
[kopensolaris-gnu/glibc.git] / time / tst-mktime.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <time.h>
4
5 int
6 main (void)
7 {
8   struct tm time_str, *tm;
9   time_t t;
10   char daybuf[20];
11   int result;
12
13   time_str.tm_year = 2001 - 1900;
14   time_str.tm_mon = 7 - 1;
15   time_str.tm_mday = 4;
16   time_str.tm_hour = 0;
17   time_str.tm_min = 0;
18   time_str.tm_sec = 1;
19   time_str.tm_isdst = -1;
20
21   if (mktime (&time_str) == -1)
22     {
23       (void) puts ("-unknown-");
24       result = 1;
25     }
26   else
27     {
28       (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
29       (void) puts (daybuf);
30       result = strcmp (daybuf, "Wednesday") != 0;
31     }
32
33   setenv ("TZ", "EST", 1);
34 #define EVENING69 1 * 60 * 60 + 2 * 60 + 29
35   t = EVENING69;
36   tm = localtime (&t);
37   if (tm == NULL)
38     {
39       (void) puts ("localtime returned NULL");
40       result = 1;
41     }
42   else
43     {
44       time_str = *tm;
45       t = mktime (&time_str);
46       if (t != EVENING69)
47         {
48           printf ("mktime returned %ld, expected %ld\n",
49                   (long) t, EVENING69);
50           result = 1;
51         }
52       else
53         (void) puts ("Dec 31 1969 EST test passed");
54
55       setenv ("TZ", "CET", 1);
56       t = mktime (&time_str);
57       if (t != (time_t) -1)
58         {
59           printf ("mktime returned %ld, expected -1\n", (long) t);
60           result = 1;
61         }
62       else
63         (void) puts ("Dec 31 1969 CET test passed");
64     }
65
66   return result;
67 }