diff options
author | Brad King <brad.king@kitware.com> | 2016-02-19 09:47:39 -0500 |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-02-19 09:47:39 -0500 |
commit | c387325d4adb69e411f0832e6e3949ba2a4a7f79 (patch) | |
tree | a80317146e1f2ae698ece485944ffb4feccfc55a /Tests | |
parent | 3e3a12a4ab5989a34fece99db9002db3822f5924 (diff) | |
parent | 6727270b75eec4e379acd4a39f5003a316249c73 (diff) | |
download | cmake-c387325d4adb69e411f0832e6e3949ba2a4a7f79.tar.gz |
Merge topic 'unix-timestamps'
6727270b CMake: Extend TIMESTAMP sub-commands with new unix time format specifier
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeTests/String-TIMESTAMP-UnixTime.cmake | 22 | ||||
-rw-r--r-- | Tests/CMakeTests/StringTest.cmake.in | 6 |
2 files changed, 28 insertions, 0 deletions
diff --git a/Tests/CMakeTests/String-TIMESTAMP-UnixTime.cmake b/Tests/CMakeTests/String-TIMESTAMP-UnixTime.cmake new file mode 100644 index 0000000000..a93e7f5467 --- /dev/null +++ b/Tests/CMakeTests/String-TIMESTAMP-UnixTime.cmake @@ -0,0 +1,22 @@ +string(TIMESTAMP timestamp "[%Y-%m-%d %H:%M:%S] %s" UTC) + +string(TIMESTAMP unix_time "%s") + +string(TIMESTAMP year "%Y" UTC) +string(TIMESTAMP days "%j" UTC) + +# Doing proper date calculations here to verify unix timestamps +# could be error prone. +# At the very least use some safe lower and upper bounds to +# 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 upper_bound "((${years_since_epoch} * 366) + ${days}) * 86400") + + +if(unix_time GREATER 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}]") +endif() diff --git a/Tests/CMakeTests/StringTest.cmake.in b/Tests/CMakeTests/StringTest.cmake.in index 92e70c3ac5..aba35fe5f8 100644 --- a/Tests/CMakeTests/StringTest.cmake.in +++ b/Tests/CMakeTests/StringTest.cmake.in @@ -36,6 +36,8 @@ set(TIMESTAMP-IncompleteSpecifier-RESULT 0) set(TIMESTAMP-IncompleteSpecifier-STDERR "~foobar%~") set(TIMESTAMP-AllSpecifiers-RESULT 0) set(TIMESTAMP-AllSpecifiers-STDERR "~[0-9]+(;[0-9]+)*~") +set(TIMESTAMP-UnixTime-RESULT 0) +set(TIMESTAMP-UnixTime-STDERR "~[1-9][0-9]+~") include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake") check_cmake_test(String @@ -58,6 +60,7 @@ check_cmake_test(String TIMESTAMP-UnknownSpecifier TIMESTAMP-IncompleteSpecifier TIMESTAMP-AllSpecifiers + TIMESTAMP-UnixTime ) # Execute each test listed in StringTestScript.cmake: @@ -68,9 +71,12 @@ set(number_of_tests_expected 70) include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake") execute_all_script_tests(${scriptname} number_of_tests_executed) +string(TIMESTAMP timestamp "[%Y-%m-%d %H:%M:%S] UTC %s" UTC) + # And verify that number_of_tests_executed is at least as many as we know # about as of this writing... # +message(STATUS "timestamp='${timestamp}'") message(STATUS "scriptname='${scriptname}'") message(STATUS "number_of_tests_executed='${number_of_tests_executed}'") message(STATUS "number_of_tests_expected='${number_of_tests_expected}'") |