Remove bogus errno checks, mktime() (and timegm()) does not guarantee
to leave errno unaltered if there is no error. And does not. While here, write -1 the same way everyone else does (not ~0, which would not even be negative on a 1's complement host, if you can find one). And while not needed for the test, but so that if checked, the result is more likely to be what is anticipated, set tm_mday to an in-range value in the mtime_negyear test (otherwise the correction results in the result movng backwards to the last day of the previous month, which is the end of Decemper, 1898, rather than the 1899 one would expect from year -1.)
This commit is contained in:
parent
6d16fde5fe
commit
934582a916
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: t_mktime.c,v 1.5 2012/03/18 07:33:58 jruoho Exp $ */
|
||||
/* $NetBSD: t_mktime.c,v 1.6 2017/10/27 00:55:27 kre Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2011 The NetBSD Foundation, Inc.
|
||||
|
@ -68,11 +68,12 @@ ATF_TC_BODY(mktime_negyear, tc)
|
|||
time_t t;
|
||||
|
||||
(void)memset(&tms, 0, sizeof(tms));
|
||||
tms.tm_year = ~0;
|
||||
tms.tm_year = -1;
|
||||
tms.tm_mday = 1;
|
||||
|
||||
errno = 0;
|
||||
t = mktime(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t != (time_t)-1);
|
||||
ATF_REQUIRE(t != (time_t)-1);
|
||||
}
|
||||
|
||||
ATF_TC(timegm_epoch);
|
||||
|
@ -92,7 +93,7 @@ ATF_TC_BODY(timegm_epoch, tc)
|
|||
tms.tm_year = 1970 - 1900;
|
||||
tms.tm_mday = 1;
|
||||
t = timegm(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t == (time_t)0);
|
||||
ATF_REQUIRE(t == (time_t)0);
|
||||
|
||||
/* one second after midnight on 1 Jan 1970 */
|
||||
(void)memset(&tms, 0, sizeof(tms));
|
||||
|
@ -101,7 +102,7 @@ ATF_TC_BODY(timegm_epoch, tc)
|
|||
tms.tm_mday = 1;
|
||||
tms.tm_sec = 1;
|
||||
t = timegm(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t == (time_t)1);
|
||||
ATF_REQUIRE(t == (time_t)1);
|
||||
|
||||
/*
|
||||
* 1969-12-31 23:59:59 = one second before the epoch.
|
||||
|
@ -116,7 +117,8 @@ ATF_TC_BODY(timegm_epoch, tc)
|
|||
tms.tm_min = 59;
|
||||
tms.tm_sec = 59;
|
||||
t = timegm(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t == (time_t)-1);
|
||||
ATF_REQUIRE(t == (time_t)-1);
|
||||
/* ATF_REQUIRE(errno == 0); does not work, errno is kept clear */
|
||||
|
||||
/*
|
||||
* Another way of getting one second before the epoch:
|
||||
|
@ -128,7 +130,7 @@ ATF_TC_BODY(timegm_epoch, tc)
|
|||
tms.tm_mday = 1;
|
||||
tms.tm_sec = -1;
|
||||
t = timegm(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t == (time_t)-1);
|
||||
ATF_REQUIRE(t == (time_t)-1);
|
||||
|
||||
/*
|
||||
* Two seconds before the epoch.
|
||||
|
@ -139,7 +141,7 @@ ATF_TC_BODY(timegm_epoch, tc)
|
|||
tms.tm_mday = 1;
|
||||
tms.tm_sec = -2;
|
||||
t = timegm(&tms);
|
||||
ATF_REQUIRE_ERRNO(0, t == (time_t)-2);
|
||||
ATF_REQUIRE(t == (time_t)-2);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue