mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
convert T2, not T. * time/Makefile (tests): Add tst-mktime3. * time/tst-mktime3.c: New test. 2004-12-01 Jakub Jelinek <jakub@redhat.com>cvs/glibc-2_3-branch
4 changed files with 61 additions and 2 deletions
@ -0,0 +1,50 @@ |
|||
/* Test program for mktime bugs with out-of-range tm_sec values. */ |
|||
|
|||
#include <stdlib.h> |
|||
#include <stdio.h> |
|||
#include <time.h> |
|||
|
|||
struct tm tests[] = |
|||
{ |
|||
{ .tm_sec = -1, .tm_mday = 1, .tm_year = 104 }, |
|||
{ .tm_sec = 65, .tm_min = 59, .tm_hour = 23, .tm_mday = 31, |
|||
.tm_mon = 11, .tm_year = 101 } |
|||
}; |
|||
struct tm expected[] = |
|||
{ |
|||
{ .tm_sec = 59, .tm_min = 59, .tm_hour = 23, .tm_mday = 31, |
|||
.tm_mon = 11, .tm_year = 103, .tm_wday = 3, .tm_yday = 364 }, |
|||
{ .tm_sec = 5, .tm_mday = 1, .tm_year = 102, .tm_wday = 2 } |
|||
}; |
|||
|
|||
int |
|||
main (void) |
|||
{ |
|||
setenv ("TZ", "UTC", 1); |
|||
int i; |
|||
for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i) |
|||
{ |
|||
if (mktime (&tests[i]) < 0) |
|||
{ |
|||
printf ("mktime %d failed\n", i); |
|||
return 1; |
|||
} |
|||
#define CHECK(name) \ |
|||
if (tests[i].name != expected[i].name) \ |
|||
{ \ |
|||
printf ("test %d " #name " got %d expected %d\n", \ |
|||
i, tests[i].name, expected[i].name); \ |
|||
return 1; \ |
|||
} |
|||
CHECK (tm_sec) |
|||
CHECK (tm_min) |
|||
CHECK (tm_hour) |
|||
CHECK (tm_mday) |
|||
CHECK (tm_mon) |
|||
CHECK (tm_year) |
|||
CHECK (tm_wday) |
|||
CHECK (tm_yday) |
|||
CHECK (tm_isdst) |
|||
} |
|||
return 0; |
|||
} |
|||
Loading…
Reference in new issue