Add missing changequote.
[kopensolaris-gnu/glibc.git] / time / tst-strftime.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5
6 static struct
7 {
8   const char *fmt;
9   size_t min;
10   size_t max;
11 } tests[] =
12   {
13     { "%2000Y", 2000, 4000 },
14     { "%02000Y", 2000, 4000 },
15     { "%_2000Y", 2000, 4000 },
16     { "%-2000Y", 2000, 4000 },
17   };
18 #define ntests (sizeof (tests) / sizeof (tests[0]))
19
20
21 static int
22 do_test (void)
23 {
24   size_t cnt;
25   int result = 0;
26
27   time_t tnow = time (NULL);
28   struct tm *now = localtime (&tnow);
29
30   for (cnt = 0; cnt < ntests; ++cnt)
31     {
32       size_t size = 0;
33       int res;
34       char *buf = NULL;
35
36       do
37         {
38           size += 500;
39           buf = (char *) realloc (buf, size);
40           if (buf == NULL)
41             {
42               puts ("out of memory");
43               exit (1);
44             }
45
46           res = strftime (buf, size, tests[cnt].fmt, now);
47           if (res != 0)
48             break;
49         }
50       while (size < tests[cnt].max);
51
52       if (res == 0)
53         {
54           printf ("%Zu: %s: res == 0 despite size == %Zu\n",
55                   cnt, tests[cnt].fmt, size);
56           result = 1;
57         }
58       else if (size < tests[cnt].min)
59         {
60           printf ("%Zu: %s: size == %Zu was enough\n",
61                   cnt, tests[cnt].fmt, size);
62           result = 1;
63         }
64       else
65         printf ("%Zu: %s: size == %Zu: OK\n", cnt, tests[cnt].fmt, size);
66
67       free (buf);
68     }
69
70   return result;
71 }
72
73 #define TEST_FUNCTION do_test ()
74 #include "../test-skeleton.c"