/* vi: set sw=4 ts=4: */ /* testcase for ctime(3) with large time * Copyright (C) 2010 David A Ramos * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include #include #include #include #define MAX_POSITIVE(type) (~0 & ~((type) 1 << (sizeof(type)*8 - 1))) int do_test(int argc, char **argv) { char *correct = 0, *s; int status; /* need a very high positive number (e.g., max - 1024) */ time_t test = MAX_POSITIVE(time_t) - 1024; s = asctime(localtime(&test)); if (s) { // copy static buffer to heap correct = malloc(strlen(s)+1); strcpy(correct, s); } s = ctime(&test); printf("ANSI:\t%suClibc:\t%s", correct, s); if (s != correct && strcmp(correct, s)) status = EXIT_FAILURE; else status = EXIT_SUCCESS; if (correct) free(correct); return status; } #include