diff options
author | Brad King <brad.king@kitware.com> | 2013-11-12 21:13:02 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-11-12 21:35:26 (GMT) |
commit | 2bbf6bd7f880ee618dd1260d784ba88b042dbf89 (patch) | |
tree | f23a7a824eff40333b2203e5c467d247db9b5078 /Tests | |
parent | 3ee67d0df93a37c3026e857be48b9dfdd580062f (diff) | |
download | CMake-2bbf6bd7f880ee618dd1260d784ba88b042dbf89.zip CMake-2bbf6bd7f880ee618dd1260d784ba88b042dbf89.tar.gz CMake-2bbf6bd7f880ee618dd1260d784ba88b042dbf89.tar.bz2 |
Copyright.txt: Add test to check year range
Add a CMake.Copyright test that, when the CMake version number knows the
year (as it does in development versions), checks that Copyright.txt has
been updated with the current version year.
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeCopyright.cmake | 22 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/Tests/CMakeCopyright.cmake b/Tests/CMakeCopyright.cmake new file mode 100644 index 0000000..a7201e9 --- /dev/null +++ b/Tests/CMakeCopyright.cmake @@ -0,0 +1,22 @@ +if(CMAKE_VERSION MATCHES "\\.(20[0-9][0-9])[0-9][0-9][0-9][0-9](-|$)") + set(version_year "${CMAKE_MATCH_1}") + set(copyright_line_regex "^Copyright 2000-(20[0-9][0-9]) Kitware") + file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../Copyright.txt" copyright_line + LIMIT_COUNT 1 REGEX "${copyright_line_regex}") + if(copyright_line MATCHES "${copyright_line_regex}") + set(copyright_year "${CMAKE_MATCH_1}") + if(copyright_year LESS version_year) + message(FATAL_ERROR "Copyright.txt contains\n" + " ${copyright_line}\n" + "but the current version year is ${version_year}.") + else() + message(STATUS "PASSED: Copyright.txt contains\n" + " ${copyright_line}\n" + "and the current version year is ${version_year}.") + endif() + else() + message(FATAL_ERROR "Copyright.txt has no Copyright line of expected format!") + endif() +else() + message(STATUS "SKIPPED: CMAKE_VERSION does not know the year: ${CMAKE_VERSION}") +endif() diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index d4a55fc..063ad11 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -161,6 +161,9 @@ if(BUILD_TESTING) set(CMAKE_LONG_TEST_TIMEOUT 1500) endif() + add_test(NAME CMake.Copyright + COMMAND cmake -P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeCopyright.cmake) + # add a bunch of standard build-and-test style tests ADD_TEST_MACRO(CommandLineTest CommandLineTest) ADD_TEST_MACRO(FindPackageTest FindPackageTest) |