macro(TEST variable)
  SET(expected "${ARGN}")
  if ( "${expected}" STREQUAL "UNDEFINED" )
    if (DEFINED ${variable})
      message(FATAL_ERROR "'${variable}' shall be undefined but has value '${${variable}}'")
    endif()
  elseif( "${expected}" STREQUAL "FALSE" )
    if (NOT ${variable} STREQUAL "FALSE")
      message(FATAL_ERROR "'${variable}' shall be FALSE")
    endif()
  elseif( "${expected}" STREQUAL "TRUE" )
    if (NOT ${variable} STREQUAL "TRUE")
      message(FATAL_ERROR "'${variable}' shall be TRUE")
    endif()
  else()
    if (NOT ${variable} STREQUAL "${expected}")
      message(FATAL_ERROR "'${variable}' shall be '${expected}'")
    endif()
  endif()
endmacro()