]>
Commit | Line | Data |
---|---|---|
00458b5b UD |
1 | #include <stdio.h> |
2 | #include <stdlib.h> | |
3 | #include <string.h> | |
4 | #include <time.h> | |
5 | ||
6 | ||
29955b5d AS |
7 | static int |
8 | do_test (void) | |
00458b5b UD |
9 | { |
10 | int result = 0; | |
11 | struct tm tm; | |
12 | ||
13 | memset (&tm, 0xaa, sizeof (tm)); | |
14 | ||
15 | /* Test we don't crash on uninitialized struct tm. | |
16 | Some fields might contain bogus values until everything | |
17 | needed is initialized, but we shouldn't crash. */ | |
18 | if (strptime ("2007", "%Y", &tm) == NULL | |
19 | || strptime ("12", "%d", &tm) == NULL | |
20 | || strptime ("Feb", "%b", &tm) == NULL | |
21 | || strptime ("13", "%M", &tm) == NULL | |
22 | || strptime ("21", "%S", &tm) == NULL | |
23 | || strptime ("16", "%H", &tm) == NULL) | |
24 | { | |
25 | puts ("strptimes failed"); | |
26 | result = 1; | |
27 | } | |
28 | ||
29 | if (tm.tm_sec != 21 || tm.tm_min != 13 || tm.tm_hour != 16 | |
30 | || tm.tm_mday != 12 || tm.tm_mon != 1 || tm.tm_year != 107 | |
31 | || tm.tm_wday != 1 || tm.tm_yday != 42) | |
32 | { | |
33 | puts ("unexpected tm content"); | |
34 | result = 1; | |
35 | } | |
36 | ||
37 | if (strptime ("8", "%d", &tm) == NULL) | |
38 | { | |
39 | puts ("strptime failed"); | |
40 | result = 1; | |
41 | } | |
42 | ||
43 | if (tm.tm_sec != 21 || tm.tm_min != 13 || tm.tm_hour != 16 | |
44 | || tm.tm_mday != 8 || tm.tm_mon != 1 || tm.tm_year != 107 | |
45 | || tm.tm_wday != 4 || tm.tm_yday != 38) | |
46 | { | |
47 | puts ("unexpected tm content"); | |
48 | result = 1; | |
49 | } | |
50 | ||
5df56c7e | 51 | return result; |
00458b5b | 52 | } |
29955b5d AS |
53 | |
54 | #define TEST_FUNCTION do_test () | |
55 | #include "../test-skeleton.c" |