diff options
Diffstat (limited to 'tests/test_helpers.cmake')
-rw-r--r-- | tests/test_helpers.cmake | 43 |
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() |