summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-11-12 21:13:02 (GMT)
committerBrad King <brad.king@kitware.com>2013-11-12 21:35:26 (GMT)
commit2bbf6bd7f880ee618dd1260d784ba88b042dbf89 (patch)
treef23a7a824eff40333b2203e5c467d247db9b5078
parent3ee67d0df93a37c3026e857be48b9dfdd580062f (diff)
downloadCMake-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.
-rw-r--r--Tests/CMakeCopyright.cmake22
-rw-r--r--Tests/CMakeLists.txt3
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)