diff options
Diffstat (limited to 'jnlib/t-timestuff.c')
-rw-r--r-- | jnlib/t-timestuff.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/jnlib/t-timestuff.c b/jnlib/t-timestuff.c deleted file mode 100644 index 46816765d..000000000 --- a/jnlib/t-timestuff.c +++ /dev/null @@ -1,145 +0,0 @@ -/* t-timestuff.c - Regression tests for time functions - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * This file is part of JNLIB. - * - * JNLIB is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. - * - * JNLIB is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -#include <config.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <time.h> - -#include "mischelp.h" - -#include "t-support.h" - - -static int -cmp_time_s (struct tm *a, struct tm *b) -{ - if (a->tm_year != b->tm_year - || a->tm_mon != b->tm_mon - || a->tm_mday != b->tm_mday - || a->tm_hour != b->tm_hour - || a->tm_min != b->tm_min - || a->tm_sec != b->tm_sec - || a->tm_wday != b->tm_wday - || a->tm_yday != b->tm_yday - || !a->tm_isdst != !b->tm_isdst) - return -1; - return 0; -} - - - -static void -test_timegm (void) -{ - static struct { - int year, mon, mday, hour, min, sec; - } tvalues[] = { - { -1 }, - { -2, 1 }, - { -2, 2 }, - { -2, 86399 }, - { -2, 86400 }, - { -2, 0x7ffffffe }, - { -2, 0x7fffffff }, - /* Note: Because we use mktime below we can only start with the - day after Epoch. */ - { 1970, 1, 2, 0, 0 , 1}, - { 1970, 1, 2, 0, 0 , 2}, - { 1970, 1, 2, 12, 0 , 0}, - { 1970, 1, 2, 23, 59 , 59}, - { 1999, 12, 31, 23, 59 , 59}, - { 2000, 1, 1, 0, 0, 0}, - { 2000, 1, 1, 0, 0, 1}, - { 2010, 12, 31, 23, 59 , 59}, - { 2010, 1, 1, 0, 0, 0}, - { 2010, 1, 1, 0, 0, 1}, - /* The date below is about the last time mktime works in CET on - Windows XP; this is a somewhat strange because 32 bit Unices - will happily work along for another month until they reach the - end of all ticks on 20380119T031408 (unless Uli takes - compassion on us and changes time_t to a u64). */ - { 2037, 12, 18, 23, 59, 59} - - }; - int tidx; - time_t now, atime, counter; - struct tm tbuf, tbuf2, *tp; - - counter = 0; - for (tidx=0; tidx < DIM (tvalues); tidx++) - { - if (tvalues[tidx].year == -1) - { - now = time (NULL); - } - else if (tvalues[tidx].year == -2) - { - now = tvalues[tidx].mon; - } - else - { - memset (&tbuf, 0, sizeof tbuf); - tbuf.tm_year = tvalues[tidx].year - 1900; - tbuf.tm_mon = tvalues[tidx].mon; - tbuf.tm_mday = tvalues[tidx].mday; - tbuf.tm_hour = tvalues[tidx].hour; - tbuf.tm_min = tvalues[tidx].min; - tbuf.tm_sec = tvalues[tidx].sec; - now = mktime (&tbuf); - } - if (now == (time_t)(-1)) - fail (tidx); - - tp = gmtime (&now); - if (!tp) - fail (tidx); - tbuf = *tp; - tbuf2 = tbuf; - atime = timegm (&tbuf); - if (atime == (time_t)(-1)) - fail (tidx); - if (atime != now) - fail (tidx); - - tp = gmtime (&atime); - if (!tp) - fail (tidx); - if (cmp_time_s (tp, &tbuf)) - fail (tidx); - if (cmp_time_s (tp, &tbuf2)) - fail (tidx); - } -} - - - -int -main (int argc, char **argv) -{ - (void)argc; - (void)argv; - - test_timegm (); - - return 0; -} - |