EndStuffTestScript.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. message(STATUS "testname='${testname}'")
  2. function(do_end content)
  3. file(WRITE "${dir}/${testname}.cmake" "${content}")
  4. execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
  5. RESULT_VARIABLE rv)
  6. if(NOT rv EQUAL 0)
  7. message(FATAL_ERROR "${testname} failed")
  8. endif()
  9. endfunction()
  10. if(testname STREQUAL bad_else) # fail
  11. do_end("else()\n")
  12. elseif(testname STREQUAL bad_elseif) # fail
  13. do_end("elseif()\n")
  14. elseif(testname STREQUAL bad_endforeach) # fail
  15. do_end("endforeach()\n")
  16. elseif(testname STREQUAL bad_endfunction) # fail
  17. do_end("endfunction()\n")
  18. elseif(testname STREQUAL bad_endif) # fail
  19. do_end("cmake_minimum_required(VERSION 2.8)\nendif()\n")
  20. elseif(testname STREQUAL endif_low_min_version) # fail
  21. do_end("cmake_minimum_required(VERSION 1.2)\nendif()\n")
  22. elseif(testname STREQUAL endif_no_min_version) # fail
  23. do_end("endif()\n")
  24. elseif(testname STREQUAL bad_endmacro) # fail
  25. do_end("endmacro()\n")
  26. elseif(testname STREQUAL bad_endwhile) # fail
  27. do_end("endwhile()\n")
  28. else() # fail
  29. message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
  30. endif()