summaryrefslogtreecommitdiff
path: root/Tests/CMakeTests/EndStuffTestScript.cmake
blob: 9f40818012e73a9c2a24aca2c40e2df8a78b2215 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
message(STATUS "testname='${testname}'")

if(testname STREQUAL bad_else) # fail
  file(WRITE "${dir}/${testname}.cmake"
"else()
")
  execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
    RESULT_VARIABLE rv)
  if(NOT rv EQUAL 0)
    message(FATAL_ERROR "${testname} failed")
  endif()

elseif(testname STREQUAL bad_elseif) # fail
  file(WRITE "${dir}/${testname}.cmake"
"elseif()
")
  execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
    RESULT_VARIABLE rv)
  if(NOT rv EQUAL 0)
    message(FATAL_ERROR "${testname} failed")
  endif()

elseif(testname STREQUAL bad_endforeach) # fail
  endforeach()

elseif(testname STREQUAL bad_endfunction) # fail
  endfunction()

elseif(testname STREQUAL bad_endif) # fail
  file(WRITE "${dir}/${testname}.cmake"
"cmake_minimum_required(VERSION 2.8)
endif()
")
  execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
    RESULT_VARIABLE rv)
  if(NOT rv EQUAL 0)
    message(FATAL_ERROR "${testname} failed")
  endif()

elseif(testname STREQUAL endif_low_min_version) # pass
  file(WRITE "${dir}/${testname}.cmake"
"cmake_minimum_required(VERSION 1.2)
endif()
")
  execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
    RESULT_VARIABLE rv)
  if(NOT rv EQUAL 0)
    message(FATAL_ERROR "${testname} failed")
  endif()

elseif(testname STREQUAL endif_no_min_version) # pass
  file(WRITE "${dir}/${testname}.cmake"
"endif()
")
  execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
    RESULT_VARIABLE rv)
  if(NOT rv EQUAL 0)
    message(FATAL_ERROR "${testname} failed")
  endif()

elseif(testname STREQUAL bad_endmacro) # fail
  endmacro()

elseif(testname STREQUAL bad_endwhile) # fail
  endwhile()

else() # fail
  message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")

endif()