|
Packit |
6c4009 |
#include <stdlib.h>
|
|
Packit |
6c4009 |
#include <stdio.h>
|
|
Packit |
6c4009 |
#include <string.h>
|
|
Packit |
6c4009 |
#include <time.h>
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
static int
|
|
Packit |
6c4009 |
do_test (void)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
struct tm time_str, *tm;
|
|
Packit |
6c4009 |
time_t t;
|
|
Packit |
6c4009 |
char daybuf[20];
|
|
Packit |
6c4009 |
int result;
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
time_str.tm_year = 2001 - 1900;
|
|
Packit |
6c4009 |
time_str.tm_mon = 7 - 1;
|
|
Packit |
6c4009 |
time_str.tm_mday = 4;
|
|
Packit |
6c4009 |
time_str.tm_hour = 0;
|
|
Packit |
6c4009 |
time_str.tm_min = 0;
|
|
Packit |
6c4009 |
time_str.tm_sec = 1;
|
|
Packit |
6c4009 |
time_str.tm_isdst = -1;
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
if (mktime (&time_str) == -1)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
(void) puts ("-unknown-");
|
|
Packit |
6c4009 |
result = 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
else
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
(void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
|
|
Packit |
6c4009 |
(void) puts (daybuf);
|
|
Packit |
6c4009 |
result = strcmp (daybuf, "Wednesday") != 0;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
setenv ("TZ", "EST+5", 1);
|
|
Packit |
6c4009 |
#define EVENING69 1 * 60 * 60 + 2 * 60 + 29
|
|
Packit |
6c4009 |
t = EVENING69;
|
|
Packit |
6c4009 |
tm = localtime (&t);
|
|
Packit |
6c4009 |
if (tm == NULL)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
(void) puts ("localtime returned NULL");
|
|
Packit |
6c4009 |
result = 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
else
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
time_str = *tm;
|
|
Packit |
6c4009 |
t = mktime (&time_str);
|
|
Packit |
6c4009 |
if (t != EVENING69)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
printf ("mktime returned %ld, expected %d\n",
|
|
Packit |
6c4009 |
(long) t, EVENING69);
|
|
Packit |
6c4009 |
result = 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
else
|
|
Packit |
6c4009 |
(void) puts ("Dec 31 1969 EST test passed");
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
setenv ("TZ", "CET-1", 1);
|
|
Packit |
6c4009 |
t = mktime (&time_str);
|
|
Packit |
6c4009 |
#define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60)
|
|
Packit |
6c4009 |
if (t != EVENING69_CET)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
printf ("mktime returned %ld, expected %ld\n",
|
|
Packit |
6c4009 |
(long) t, (long) EVENING69_CET);
|
|
Packit |
6c4009 |
result = 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
else
|
|
Packit |
6c4009 |
(void) puts ("Dec 31 1969 CET test passed");
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
return result;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#define TEST_FUNCTION do_test ()
|
|
Packit |
6c4009 |
#include "../test-skeleton.c"
|