aboutsummaryrefslogtreecommitdiff
path: root/tests/test_helpers.cmake
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/test_helpers.cmake
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/test_helpers.cmake')
-rw-r--r--tests/test_helpers.cmake43
1 files changed, 35 insertions, 8 deletions
diff --git a/tests/test_helpers.cmake b/tests/test_helpers.cmake
index db4fc802..73be343e 100644
--- a/tests/test_helpers.cmake
+++ b/tests/test_helpers.cmake
@@ -5,32 +5,59 @@ macro(assert_var_defined varname)
endmacro()
macro(assert_vars_strequal varname exp_varname)
- assert_var_defined(${varname})
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
if(NOT ${varname} STREQUAL ${exp_varname})
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
endif()
endmacro()
macro(assert_var_str_value varname value)
- assert_var_defined(${varname})
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
set(_value_var "${value}")
if(NOT ${varname} STREQUAL _value_var)
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
endif()
endmacro()
+macro(assert_var_num_value varname value)
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ set(_value_var "${value}")
+ if(NOT ${varname} EQUAL _value_var)
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
+ endif()
+endmacro()
+
+macro(assert_var_bool_value varname value)
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(${value} AND NOT ${varname})
+ message(FATAL_ERROR "${varname} was FALSE")
+ elseif(${varname} AND NOT ${value})
+ message(FATAL_ERROR "${varname} was TRUE")
+ endif()
+endmacro()
+
macro(assert_var_relative_path varname)
- if(NOT DEFINED ${varname})
- message(SEND_ERROR "${varname} is not defined.")
- elseif(IS_ABSOLUTE "${${varname}}")
+ if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(DEFINED ${varname} AND IS_ABSOLUTE "${${varname}}")
message(SEND_ERROR "${varname} (${${varname}}) should be a relative path, but is absolute.")
endif()
endmacro()
macro(assert_var_absolute_path varname)
- if(NOT DEFINED ${varname})
- message(SEND_ERROR "${varname} is not defined.")
- elseif(NOT IS_ABSOLUTE "${${varname}}")
+ if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(DEFINED ${varname} AND NOT IS_ABSOLUTE "${${varname}}")
message(SEND_ERROR "${varname} (${${varname}}) should be an absolute path, but is relative.")
endif()
endmacro()