Tests: Fix TIMESTAMP-UnixTime test under SOURCE_DATE_EPOCH=1

The test was expecting timestamps on day 1 in 1970 to start at 86400 but
they actually started at 0.  This worked without `SOURCE_DATE_EPOCH=1`
because after 1972, leap days compensated the offset.

Fixes: #17762
This commit is contained in:
Bernhard M. Wiedemann 2018-02-26 14:47:54 +01:00 committed by Brad King
parent 9c1efb614d
commit e1cd936c62
2 changed files with 4 additions and 4 deletions

View File

@ -11,12 +11,12 @@ string(TIMESTAMP days "%j" UTC)
# see if we are somewhere in the right region.
math(EXPR years_since_epoch "${year} - 1970")
math(EXPR lower_bound "((${years_since_epoch} * 365) + ${days}) * 86400")
math(EXPR lower_bound "((${years_since_epoch} * 365) + ${days} - 1) * 86400")
math(EXPR upper_bound "((${years_since_epoch} * 366) + ${days}) * 86400")
if(unix_time GREATER lower_bound AND unix_time LESS upper_bound)
if(unix_time GREATER_EQUAL lower_bound AND unix_time LESS upper_bound)
message("~${unix_time}~")
else()
message(FATAL_ERROR "${timestamp} unix time not in expected range [${lower_bound}, ${upper_bound}]")
message(FATAL_ERROR "${timestamp} unix time not in expected range [${lower_bound}, ${upper_bound})")
endif()

View File

@ -47,7 +47,7 @@ set(TIMESTAMP-AllSpecifiers-STDERR "~[0-9]+(;[0-9]+)*~")
set(TIMESTAMP-MonthWeekNames-RESULT 0)
set(TIMESTAMP-MonthWeekNames-STDERR "~[^%]+;[^%]+~")
set(TIMESTAMP-UnixTime-RESULT 0)
set(TIMESTAMP-UnixTime-STDERR "~[1-9][0-9]+~")
set(TIMESTAMP-UnixTime-STDERR "~[0-9]+~")
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
check_cmake_test(String