Introduce "generator expressions" to add_test()
[cmake.git] / Tests / CMakeTests / FileTest.cmake.in
blobc89348b4a1cbfcde257457a3731517b3b44b7e7d
1 set(Copy-BadArg-RESULT 1)
2 set(Copy-BadArg-STDERR "unknown argument \"BADARG\"")
3 set(Copy-BadPerm-RESULT 1)
4 set(Copy-BadPerm-STDERR "COPY given invalid permission \"BADPERM\"")
5 set(Copy-BadRegex-RESULT 1)
6 set(Copy-BadRegex-STDERR "could not compile REGEX")
7 set(Copy-EarlyArg-RESULT 1)
8 set(Copy-EarlyArg-STDERR "option PERMISSIONS may not appear before")
9 set(Copy-LateArg-RESULT 1)
10 set(Copy-LateArg-STDERR "option FILE_PERMISSIONS may not appear after")
11 set(Copy-NoDest-RESULT 1)
12 set(Copy-NoDest-STDERR "given no DESTINATION")
13 set(Copy-NoFile-RESULT 1)
14 set(Copy-NoFile-STDERR "COPY cannot find.*/does_not_exist\\.txt")
16 foreach(test
17     Copy-BadArg
18     Copy-BadPerm
19     Copy-BadRegex
20     Copy-EarlyArg
21     Copy-LateArg
22     Copy-NoDest
23     Copy-NoFile
24     )
25   message(STATUS "Test ${test}...")
26   execute_process(
27     COMMAND ${CMAKE_COMMAND} -P
28     "@CMAKE_CURRENT_SOURCE_DIR@/File-${test}.cmake"
29     WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@"
30     OUTPUT_VARIABLE stdout
31     ERROR_VARIABLE stderr
32     RESULT_VARIABLE result
33     )
34   string(REGEX REPLACE "\n" "\n out> " out " out> ${stdout}")
35   string(REGEX REPLACE "\n" "\n err> " err " err> ${stderr}")
36   if(NOT "${result}" STREQUAL ${${test}-RESULT})
37     message(FATAL_ERROR
38       "Test ${test} result is [${result}], not [${${test}-RESULT}].\n"
39       "Test ${test} output:\n"
40       "${out}\n"
41       "${err}")
42   endif()
43   if(${test}-STDERR AND NOT "${err}" MATCHES "${${test}-STDERR}")
44     message(FATAL_ERROR
45       "Test ${test} stderr does not match\n  ${${test}-STDERR}\n"
46       "Test ${test} output:\n"
47       "${out}\n"
48       "${err}")
49   endif()
50 endforeach()