int main(int argc, char **argv) { time_t t; char buf[BUFSIZ]; time(&t); memset(buf, 0x55, sizeof buf); TIM_format(t, buf); printf("scan = %d <%s>\n", TIM_parse(buf), buf); /* Examples from RFC2616 section 3.3.1 */ tst("Sun, 06 Nov 1994 08:49:37 GMT", 784111777); tst("Sunday, 06-Nov-94 08:49:37 GMT", 784111777); tst("Sun Nov 6 08:49:37 1994", 784111777); tst_delta(); return (0); }
int main(int argc, char **argv) { time_t t; struct tm tm; double tt; char buf[BUFSIZ]; char buf1[BUFSIZ]; AZ(setenv("TZ", "UTC", 1)); assert(sizeof t >= 8); /* Brute force test against libc version */ for (t = -2209852800; t < 20000000000; t += 3599) { gmtime_r(&t, &tm); strftime(buf1, sizeof buf1, "%a, %d %b %Y %T GMT", &tm); VTIM_format(t, buf); if (strcmp(buf, buf1)) { printf("libc: <%s> Vtim <%s> %jd\n", buf1, buf, (intmax_t)t); exit(2); } tt = VTIM_parse(buf1); if (tt != t) { VTIM_format(tt, buf); printf(" fm: %12jd <%s>\n", (intmax_t)t, buf1); printf(" to: %12.0f <%s>\n", tt, buf); exit(2); } strftime(buf1, sizeof buf1, "%a %b %e %T %Y", &tm); tt = VTIM_parse(buf1); if (tt != t) { VTIM_format(tt, buf); printf(" fm: %12jd <%s>\n", (intmax_t)t, buf1); printf(" to: %12.0f <%s>\n", tt, buf); exit(2); } strftime(buf1, sizeof buf1, "%Y-%m-%dT%T", &tm); tt = VTIM_parse(buf1); if (tt != t) { VTIM_format(tt, buf); printf(" fm: %12jd <%s>\n", (intmax_t)t, buf1); printf(" to: %12.0f <%s>\n", tt, buf); exit(2); } if (tm.tm_year >= 69 && tm.tm_year < 169) { strftime(buf1, sizeof buf1, "%A, %d-%b-%y %T GMT", &tm); tt = VTIM_parse(buf1); if (tt != t) { VTIM_format(tt, buf); printf(" fm: %12jd <%s>\n", (intmax_t)t, buf1); printf(" to: %12.0f <%s>\n", tt, buf); exit(2); } } } /* Examples from RFC2616 section 3.3.1 */ tst("Sun, 06 Nov 1994 08:49:37 GMT", 784111777); tst("Sunday, 06-Nov-94 08:49:37 GMT", 784111777); tst("Sun Nov 6 08:49:37 1994", 784111777); tst("1994-11-06T08:49:37", 784111777); tst_delta(); return (0); }