aboutsummaryrefslogtreecommitdiff
path: root/tests/ECMSetupVersionTest/old_version_file_exact
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2014-12-28 16:32:13 +0000
committerAlex Merry <alex.merry@kde.org>2014-12-28 17:30:11 +0000
commitf8af407eba5c5ea45be2c6351cf41a7cb44fed21 (patch)
tree0c3326caf677883ec00e292312213acefe366877 /tests/ECMSetupVersionTest/old_version_file_exact
parent351fe45dba7ac04ec2779b7d761ac55a58f89945 (diff)
downloadextra-cmake-modules-f8af407eba5c5ea45be2c6351cf41a7cb44fed21.tar.gz
extra-cmake-modules-f8af407eba5c5ea45be2c6351cf41a7cb44fed21.tar.bz2
Improve version file tests.
Mostly just refatoring to have less duplicated code.
Diffstat (limited to 'tests/ECMSetupVersionTest/old_version_file_exact')
-rw-r--r--tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt81
1 files changed, 26 insertions, 55 deletions
diff --git a/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
index 999a6cd8..3a212fed 100644
--- a/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
@@ -10,73 +10,44 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake COMPATIBILITY ExactVersion
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(boolcheck var val)
- if(${val} AND NOT ${var})
- message(FATAL_ERROR "${var} was FALSE")
- elseif(${var} AND NOT ${val})
- message(FATAL_ERROR "${var} was TRUE")
- endif()
-endmacro()
+include(../../test_helpers.cmake)
+include(../version_helpers.cmake)
-macro(find_foo major minor patch)
- unset(PACKAGE_VERSION)
- unset(PACKAGE_VERSION_COMPATIBLE)
- unset(PACKAGE_VERSION_EXACT)
- set(PACKAGE_FIND_VERSION "${major}.${minor}.${patch}")
- set(PACKAGE_FIND_VERSION_MAJOR "${major}")
- set(PACKAGE_FIND_VERSION_MINOR "${minor}")
- set(PACKAGE_FIND_VERSION_PATCH "${patch}")
- set(PACKAGE_FIND_VERSION_TWEAK)
- include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
- strcheck(PACKAGE_VERSION "2.3.4")
+macro(find_foo version)
+ test_version_file("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake" "${version}")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
endmacro()
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+standard_version_var_checks(Foo 2.3.4)
# too old - fails
-find_foo(3 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("3.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong major version - fails
-find_foo(1 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("1.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong minor - fails
-find_foo(2 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("2.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong patch - fails
-find_foo(2 3 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("2.3.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+# tweak doesn't matter (but prevents P_V_EXACT being set) - succeeds
+find_foo("2.3.4.3")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# exact - succeeds
-find_foo(2 3 4)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT TRUE)
+find_foo("2.3.4")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT TRUE)
add_executable(dummy main.c)