summaryrefslogtreecommitdiffstats
path: root/Tests/CommandLineTest/CMakeLists.txt
blob: f9abfdfeee3673a45830694068f5cbf5be206f34 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
PROJECT(CommandLineTest)

GET_FILENAME_COMPONENT(CMAKE_BIN_DIR ${CMAKE_COMMAND} PATH)
FIND_PROGRAM(DUMP_DOC_EXE NAMES DumpDocumentation PATHS ${CMAKE_BIN_DIR})
MACRO(EXEC_CMAKE_COMMAND CMAKE_ARGS)
  EXEC_PROGRAM("${CMAKE_COMMAND}" ARGS "${CMAKE_ARGS}" RETURN_VALUE RET)
  IF(${RET})
    MESSAGE(SEND_ERROR "CMake command failed with arguments \"${CMAKE_ARGS}\"")
  ENDIF(${RET})
ENDMACRO(EXEC_CMAKE_COMMAND)

EXEC_CMAKE_COMMAND("-E chdir \"${CMAKE_CURRENT_SOURCE_DIR}\" \"${CMAKE_COMMAND}\" -E echo \"Hello World\"")
EXEC_CMAKE_COMMAND("-E time \"${CMAKE_COMMAND} -N -L ${CommandLineTest_SOURCE_DIR}\"")
EXEC_CMAKE_COMMAND("-E time \"${CMAKE_COMMAND} -N -LA ${CommandLineTest_SOURCE_DIR}\"")
EXEC_CMAKE_COMMAND("-E time \"${CMAKE_COMMAND} -N -LH ${CommandLineTest_SOURCE_DIR}\"")
EXEC_CMAKE_COMMAND("-E time \"${CMAKE_COMMAND} -N -LAH ${CommandLineTest_SOURCE_DIR}\"")
EXEC_CMAKE_COMMAND("--help")
EXEC_CMAKE_COMMAND("--help-command-list")
EXEC_CMAKE_COMMAND("--help add_executable")
EXEC_CMAKE_COMMAND("--help-command add_executable")
EXEC_CMAKE_COMMAND("--help-full \"${CMAKE_CURRENT_BINARY_DIR}/cmake.txt\"")
EXEC_CMAKE_COMMAND("--help-man \"${CMAKE_CURRENT_BINARY_DIR}/cmake.man\"")
EXEC_CMAKE_COMMAND("--help-html \"${CMAKE_CURRENT_BINARY_DIR}/cmake.html\"")
EXEC_CMAKE_COMMAND("--copyright \"${CMAKE_CURRENT_BINARY_DIR}/Copyright.txt\"")
EXEC_CMAKE_COMMAND("--version \"${CMAKE_CURRENT_BINARY_DIR}/version.txt\"")

IF(DUMP_DOC_EXE)
  EXEC_PROGRAM(${DUMP_DOC_EXE} ARGS "--all-for-coverage \"${CMAKE_CURRENT_BINARY_DIR}/all_for_coverage.txt\"" RETURN_VALUE RET)
  IF(${RET})
    MESSAGE(SEND_ERROR "DumpDoc command failed ")
  ENDIF(${RET})
ELSE(DUMP_DOC_EXE)
  MESSAGE(SEND_ERROR "Cannot find DumpDocumentation executable.")
ENDIF(DUMP_DOC_EXE)

ADD_EXECUTABLE(CommandLineTest CommandLineTest.cxx)

GET_FILENAME_COMPONENT(CMAKE_COMMAND_PATH "${CMAKE_COMMAND}" PATH)
SET(CTEST_COMMAND "${CMAKE_COMMAND_PATH}/ctest")
MACRO(EXEC_CTEST_COMMAND CMAKE_ARGS)
  EXEC_PROGRAM("${CTEST_COMMAND}" ARGS "${CMAKE_ARGS}" RETURN_VALUE RET)
  IF(${RET})
    MESSAGE(SEND_ERROR "CTest command failed with arguments \"${CMAKE_ARGS}\"")
  ENDIF(${RET})
ENDMACRO(EXEC_CTEST_COMMAND)
MACRO(EXEC_CTEST_COMMAND_WITH_DIR DIR CMAKE_ARGS)
  EXEC_PROGRAM("${CTEST_COMMAND}" "${DIR}" ARGS "${CMAKE_ARGS}" RETURN_VALUE RET)
  IF(${RET})
    MESSAGE(SEND_ERROR "CTest command failed with arguments \"${CMAKE_ARGS}\"")
  ENDIF(${RET})
ENDMACRO(EXEC_CTEST_COMMAND_WITH_DIR)

EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-N")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-R complex -N")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-E Simple -N")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-E Simple -N")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-N -I -10")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-N -I 10-")
EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.."  "-N -I 3,4")
EXEC_CTEST_COMMAND("--help")
EXEC_CTEST_COMMAND("--copyright")
EXEC_CTEST_COMMAND("--help-full \"${CMAKE_CURRENT_BINARY_DIR}/ctest.txt\"")
EXEC_CTEST_COMMAND("--help-man \"${CMAKE_CURRENT_BINARY_DIR}/ctest.man\"")
EXEC_CTEST_COMMAND("--help-html \"${CMAKE_CURRENT_BINARY_DIR}/ctest.html\"")
EXEC_CTEST_COMMAND("--version")

IF(THIS_SHOULD_BE_SET)
  MESSAGE(STATUS "***************************")
  MESSAGE(STATUS "PreLoad.cmake works fine.")
  MESSAGE(STATUS "***************************")
ELSE(THIS_SHOULD_BE_SET)
  MESSAGE("***************************")
  MESSAGE(FATAL_ERROR "PreLoad.cmake does not work.")
ENDIF(THIS_SHOULD_BE_SET)

IF(DEFINED ENV{TEST_ENVIRONMENT_VARIABLE_NOTSET})
  MESSAGE(SEND_ERROR "Environment variable definition test broken!")
ENDIF(DEFINED ENV{TEST_ENVIRONMENT_VARIABLE_NOTSET})

SET(ENV{TEST_ENVIRONMENT_VARIABLE} "Environment variable set")
IF("$ENV{TEST_ENVIRONMENT_VARIABLE}" STREQUAL "Environment variable set")
  MESSAGE(STATUS "Environment variable set to: $ENV{TEST_ENVIRONMENT_VARIABLE}")
  IF(NOT DEFINED ENV{TEST_ENVIRONMENT_VARIABLE})
    MESSAGE(SEND_ERROR "Environment variable definition test failed!")
  ENDIF(NOT DEFINED ENV{TEST_ENVIRONMENT_VARIABLE})
ELSE("$ENV{TEST_ENVIRONMENT_VARIABLE}" STREQUAL "Environment variable set")
  MESSAGE(SEND_ERROR "Environment variable setting is broken")
ENDIF("$ENV{TEST_ENVIRONMENT_VARIABLE}" STREQUAL "Environment variable set")