| #include <errno.h> |
| #include <limits.h> |
| #include <stdio.h> |
| #include <time.h> |
| |
| |
| static int |
| do_test (void) |
| { |
| int result = 0; |
| time_t t = time (NULL); |
| struct tm *tp = localtime (&t); |
| tp->tm_year = 10000 - 1900; |
| char buf[1000]; |
| errno = 0; |
| buf[26] = '\xff'; |
| char *s = asctime_r (tp, buf); |
| if (s != NULL || errno != EOVERFLOW) |
| { |
| puts ("asctime_r did not fail correctly"); |
| result = 1; |
| } |
| if (buf[26] != '\xff') |
| { |
| puts ("asctime_r overwrote 27th byte in buffer"); |
| result = 1; |
| } |
| return result; |
| } |
| |
| #define TEST_FUNCTION do_test () |
| #include "../test-skeleton.c" |