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:
kre 2017-10-27 00:55:27 +00:00
parent 6d16fde5fe
commit 934582a916
1 changed files with 10 additions and 8 deletions

View File

@ -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);
}