cc65/test/val/time-test.c

54 lines
1.3 KiB
C

#include <stdio.h>
#include <string.h>
#include <time.h>
#define EXPECTSTR "3DD173D1 - Tue Nov 12 21:34:09 2002\n"
char result[0x100];
int fails = 0;
int main (void)
{
struct tm tm;
time_t t;
char buf[64];
tm.tm_sec = 9;
tm.tm_min = 34;
tm.tm_hour = 21;
tm.tm_mday = 12;
tm.tm_mon = 10; /* 0..11, so this is november */
tm.tm_year = 102; /* year - 1900, so this is 2002 */
tm.tm_wday = 2; /* Tuesday */
tm.tm_isdst = 0;
/* Convert this broken down time into a time_t and back */
t = mktime (&tm);
printf ("Test passes if the following lines are\n"
"all identical:\n");
printf (EXPECTSTR);
sprintf (result, "%08lX - %s", t, asctime (&tm));
printf (result);
if (strcmp(result, EXPECTSTR) != 0) { fails++; }
sprintf (result, "%08lX - %s", t, asctime (gmtime (&t)));
printf (result);
if (strcmp(result, EXPECTSTR) != 0) { fails++; }
strftime (buf, sizeof (buf), "%c", &tm);
sprintf (result, "%08lX - %s\n", t, buf);
printf (result);
if (strcmp(result, EXPECTSTR) != 0) { fails++; }
strftime (buf, sizeof (buf), "%a %b %d %H:%M:%S %Y", &tm);
sprintf (result, "%08lX - %s\n", t, buf);
printf (result);
if (strcmp(result, EXPECTSTR) != 0) { fails++; }
printf("fails: %d\n", fails);
return fails;
}