From 2bbf6bd7f880ee618dd1260d784ba88b042dbf89 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 12 Nov 2013 16:13:02 -0500 Subject: 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. --- Tests/CMakeCopyright.cmake | 22 ++++++++++++++++++++++ Tests/CMakeLists.txt | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 Tests/CMakeCopyright.cmake 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) -- cgit v0.12