1 # a macro for tests that have a simple format where the name matches the
2 # directory and project
3 MACRO(ADD_TEST_MACRO NAME COMMAND)
4 ADD_TEST(${NAME} ${CMAKE_CTEST_COMMAND}
6 "${CMake_SOURCE_DIR}/Tests/${NAME}"
7 "${CMake_BINARY_DIR}/Tests/${NAME}"
9 --build-generator ${CMAKE_TEST_GENERATOR}
10 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
11 --build-project ${NAME}
12 --test-command ${COMMAND})
13 ENDMACRO(ADD_TEST_MACRO)
18 # Should the long tests be run?
19 OPTION(CMAKE_RUN_LONG_TESTS
20 "Should the long tests be run (such as Bootstrap)." ON)
21 MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)
23 IF (CMAKE_RUN_LONG_TESTS)
24 OPTION(CTEST_TEST_CTEST
25 "Should the tests that run a full sub ctest process be run?"
27 MARK_AS_ADVANCED(CTEST_TEST_CTEST)
28 ENDIF (CMAKE_RUN_LONG_TESTS)
30 # add a bunch of standard build-and-test style tests
31 ADD_TEST_MACRO(CommandLineTest CommandLineTest)
32 ADD_TEST_MACRO(FindPackageTest FindPackageTest)
33 ADD_TEST_MACRO(StringFileTest StringFileTest)
34 ADD_TEST_MACRO(TryCompile TryCompile)
35 ADD_TEST_MACRO(TarTest TarTest)
36 ADD_TEST_MACRO(SystemInformation SystemInformation)
37 ADD_TEST_MACRO(MathTest MathTest)
38 ADD_TEST_MACRO(Simple Simple)
39 ADD_TEST_MACRO(PreOrder PreOrder)
40 ADD_TEST_MACRO(COnly COnly)
41 ADD_TEST_MACRO(CxxOnly CxxOnly)
42 ADD_TEST_MACRO(NewlineArgs NewlineArgs)
43 ADD_TEST_MACRO(SetLang SetLang)
44 ADD_TEST_MACRO(ExternalOBJ ExternalOBJ)
45 ADD_TEST_MACRO(LoadCommand LoadedCommand)
46 ADD_TEST_MACRO(LinkLine LinkLine)
47 ADD_TEST_MACRO(MacroTest miniMacroTest)
48 ADD_TEST_MACRO(FunctionTest miniFunctionTest)
49 ADD_TEST_MACRO(ReturnTest ReturnTest)
50 ADD_TEST_MACRO(Properties Properties)
51 ADD_TEST_MACRO(Assembler HelloAsm)
52 ADD_TEST_MACRO(SourceGroups SourceGroups)
53 ADD_TEST_MACRO(Preprocess Preprocess)
54 ADD_TEST_MACRO(ExportImport ExportImport)
56 # test for correct sub-project generation
57 # not implemented in VS6 or Xcode
58 IF(NOT MSVC60 AND NOT XCODE AND NOT MSVC70)
59 # run cmake and configure all of SubProject
60 # but only build the independent executable car
61 ADD_TEST(SubProject ${CMAKE_CTEST_COMMAND}
63 "${CMake_SOURCE_DIR}/Tests/SubProject"
64 "${CMake_BINARY_DIR}/Tests/SubProject"
65 --build-project SubProject
66 --build-generator ${CMAKE_TEST_GENERATOR}
67 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
71 # For stage 2, do not run cmake again.
72 # Then build the foo sub project which should build
73 # the bar library which should be referenced because
74 # foo links to the static library bar, but bar is not
75 # directly in the foo sub project
76 ADD_TEST(SubProject-Stage2 ${CMAKE_CTEST_COMMAND}
78 "${CMake_SOURCE_DIR}/Tests/SubProject/foo"
79 "${CMake_BINARY_DIR}/Tests/SubProject/foo"
80 --build-generator ${CMAKE_TEST_GENERATOR}
81 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
87 ENDIF(NOT MSVC60 AND NOT XCODE AND NOT MSVC70)
90 ADD_TEST_MACRO(DocTest DocTest)
93 IF(CMAKE_BUILD_NIGHTLY_WINDOWS_TEST)
94 FILE(MAKE_DIRECTORY "${CMake_BINARY_DIR}/Tests/CMake-CVS")
95 FILE(WRITE "${CMake_BINARY_DIR}/Tests/CMake-CVS/nightly-cmake.sh"
96 "cd ${CMake_BINARY_DIR}/Tests/CMake-CVS
97 ${CMake_BINARY_DIR}/bin/cmake -DCMAKE_VERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Release/vogon_release.cmake
98 ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Release/upload_release.cmake
100 ADD_TEST(NightlyCMakeBuild
101 /bin/sh ${CMake_BINARY_DIR}/Tests/CMake-CVS/nightly-cmake.sh)
102 IF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
103 SET_TESTS_PROPERTIES ( NightlyCMakeBuild PROPERTIES TIMEOUT 3500)
104 ENDIF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
105 ENDIF(CMAKE_BUILD_NIGHTLY_WINDOWS_TEST)
108 # add tests with more complex invocations
109 ADD_TEST(Framework ${CMAKE_CTEST_COMMAND}
111 "${CMake_SOURCE_DIR}/Tests/Framework"
112 "${CMake_BINARY_DIR}/Tests/Framework"
114 --build-generator ${CMAKE_TEST_GENERATOR}
115 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
116 --build-project Framework
118 "-DCMAKE_INSTALL_PREFIX:PATH=${CMake_BINARY_DIR}/Tests/Framework/Install"
121 ADD_TEST(TargetName ${CMAKE_CTEST_COMMAND}
123 "${CMake_SOURCE_DIR}/Tests/TargetName"
124 "${CMake_BINARY_DIR}/Tests/TargetName"
126 --build-generator ${CMAKE_TEST_GENERATOR}
127 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
128 --build-project TargetName
129 --test-command ${CMAKE_CMAKE_COMMAND} -E compare_files
130 ${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world
131 ${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world)
133 ADD_TEST(LibName ${CMAKE_CTEST_COMMAND}
135 "${CMake_SOURCE_DIR}/Tests/LibName"
136 "${CMake_BINARY_DIR}/Tests/LibName"
138 --build-generator ${CMAKE_TEST_GENERATOR}
139 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
140 --build-project LibName
141 --build-exe-dir "${CMake_BINARY_DIR}/Tests/LibName/lib"
142 --test-command foobar
145 ADD_TEST(CustComDepend ${CMAKE_CTEST_COMMAND}
147 "${CMake_SOURCE_DIR}/Tests/CustComDepend"
148 "${CMake_BINARY_DIR}/Tests/CustComDepend"
150 --build-generator ${CMAKE_TEST_GENERATOR}
151 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
152 --build-project CustComDepend
153 --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustComDepend/bin"
154 --test-command foo bar.c
157 ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
159 "${CMake_SOURCE_DIR}/Tests/CustomCommand"
160 "${CMake_BINARY_DIR}/Tests/CustomCommand"
162 --build-generator ${CMAKE_TEST_GENERATOR}
163 --build-project CustomCommand
164 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
165 --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
166 --test-command CustomCommand
169 ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND}
171 "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory"
172 "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
174 --build-generator ${CMAKE_TEST_GENERATOR}
175 --build-project TestWorkingDir
176 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
177 --test-command working
180 #ADD_TEST(SimpleExclude ${CMAKE_CTEST_COMMAND}
182 # "${CMake_SOURCE_DIR}/Tests/SimpleExclude"
183 # "${CMake_BINARY_DIR}/Tests/SimpleExclude"
184 # --build-generator ${CMAKE_TEST_GENERATOR}
185 # --build-project SimpleExclude
186 # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
189 #--test-command "${CMAKE_COMMAND}"
190 #"-DCONFIGURATION=\${CTEST_CONFIGURATION_TYPE}"
191 #-P "${CMAKE_BINARY_DIR}/Tests/SimpleExclude/run.cmake"
194 # ADD_TEST(SameName ${CMAKE_CTEST_COMMAND}
196 # "${CMake_SOURCE_DIR}/Tests/SameName"
197 # "${CMake_BINARY_DIR}/Tests/SameName"
198 # --build-generator ${CMAKE_TEST_GENERATOR}
199 # --build-project SameName
200 # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
203 # "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")
205 ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
207 "${CMake_SOURCE_DIR}/Tests/OutOfSource"
208 "${CMake_BINARY_DIR}/Tests/OutOfSource"
209 --build-generator ${CMAKE_TEST_GENERATOR}
210 --build-project OutOfSource
211 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
214 "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")
216 ADD_TEST(BuildDepends ${CMAKE_CTEST_COMMAND}
218 "${CMake_SOURCE_DIR}/Tests/BuildDepends"
219 "${CMake_BINARY_DIR}/Tests/BuildDepends"
220 --build-generator ${CMAKE_TEST_GENERATOR}
221 --build-project BuildDepends
222 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
225 SET(SimpleInstallInstallDir
226 "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
227 ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
229 "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
230 "${CMake_BINARY_DIR}/Tests/SimpleInstall"
231 --build-generator ${CMAKE_TEST_GENERATOR}
232 --build-project TestSimpleInstall
233 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
236 "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
237 --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstExe)
238 ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
240 "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
241 "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
242 --build-generator ${CMAKE_TEST_GENERATOR}
243 --build-project TestSimpleInstall
244 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
247 "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
249 --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstExeS2)
251 ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
253 "${CMake_SOURCE_DIR}/Tests/X11"
254 "${CMake_BINARY_DIR}/Tests/X11"
255 --build-generator ${CMAKE_TEST_GENERATOR}
256 --build-project UseX11
257 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
259 --test-command UseX11)
261 ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
263 "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
264 "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
265 --build-generator ${CMAKE_TEST_GENERATOR}
266 --build-project LoadCommand
267 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
268 --test-command LoadedCommand
271 # Como does not seem to support shared libraries.
272 GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
273 IF(CMAKE_BASE_NAME MATCHES "^como$")
274 SET(COMPILER_IS_COMO 1)
275 ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
276 IF(NOT COMPILER_IS_COMO)
277 ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
279 "${CMake_SOURCE_DIR}/Tests/Complex"
280 "${CMake_BINARY_DIR}/Tests/Complex"
282 --build-config-sample "${CMAKE_CTEST_COMMAND}"
283 --build-generator ${CMAKE_TEST_GENERATOR}
284 --build-project Complex
285 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
286 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
288 -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
289 -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES}
290 --test-command complex
293 ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
295 "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
296 "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
297 --build-generator ${CMAKE_TEST_GENERATOR}
298 --build-project Complex
299 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
300 --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
302 -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
303 -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES}
304 --test-command complex)
306 # This fails on VS 70
307 # works on Xcode and makefiles
308 # ADD_TEST(ConvLibrary ${CMAKE_CTEST_COMMAND}
310 # "${CMake_SOURCE_DIR}/Tests/ConvLibrary"
311 # "${CMake_BINARY_DIR}/Tests/ConvLibrary"
313 # --build-generator ${CMAKE_TEST_GENERATOR}
314 # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
315 # --build-project ConvLibrary
316 # --test-command bartest)
319 # ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
321 # "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
322 # "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
323 # --build-generator ${CMAKE_TEST_GENERATOR}
324 # --build-project complex
325 # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
326 # --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
327 # --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
328 # --test-command complex)
330 ENDIF(NOT COMPILER_IS_COMO)
332 ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
334 "${CMake_SOURCE_DIR}/Example"
335 "${CMake_BINARY_DIR}/Example"
336 --build-generator ${CMAKE_TEST_GENERATOR}
337 --build-project HELLO
338 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
339 --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
340 --test-command helloDemo
343 # do each of the tutorial steps
344 FOREACH(STP RANGE 1 7)
345 ADD_TEST(TutorialStep${STP} ${CMAKE_CTEST_COMMAND}
347 "${CMake_SOURCE_DIR}/Tests/Tutorial/Step${STP}"
348 "${CMake_BINARY_DIR}/Tests/Tutorial/Step${STP}"
350 --build-generator ${CMAKE_TEST_GENERATOR}
351 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
352 --build-project Tutorial
353 --test-command Tutorial 25.0)
356 ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
358 "${CMake_SOURCE_DIR}/Tests/Testing"
359 "${CMake_BINARY_DIR}/Tests/Testing"
360 --build-generator ${CMAKE_TEST_GENERATOR}
361 --build-project Testing
362 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
363 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
364 --test-command testing
367 ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
369 "${CMake_SOURCE_DIR}/Tests/Wrapping"
370 "${CMake_BINARY_DIR}/Tests/Wrapping"
371 --build-generator ${CMAKE_TEST_GENERATOR}
372 --build-project Wrapping
373 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
374 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
375 --test-command wrapping
377 ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
379 "${CMake_SOURCE_DIR}/Tests/Wrapping"
380 "${CMake_BINARY_DIR}/Tests/Wrapping"
381 --build-generator ${CMAKE_TEST_GENERATOR}
382 --build-project Wrapping
383 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
384 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
385 --test-command qtwrapping
388 ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
390 "${CMake_SOURCE_DIR}/Tests/TestDriver"
391 "${CMake_BINARY_DIR}/Tests/TestDriver"
392 --build-generator ${CMAKE_TEST_GENERATOR}
393 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
394 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
395 --build-project TestDriverTest
396 --test-command TestDriverTest test1
399 ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
401 "${CMake_SOURCE_DIR}/Tests/TestDriver"
402 "${CMake_BINARY_DIR}/Tests/TestDriver"
403 --build-generator ${CMAKE_TEST_GENERATOR}
404 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
405 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
406 --build-project TestDriverTest
407 --test-command TestDriverTest test2
410 ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
412 "${CMake_SOURCE_DIR}/Tests/TestDriver"
413 "${CMake_BINARY_DIR}/Tests/TestDriver"
414 --build-generator ${CMAKE_TEST_GENERATOR}
415 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
416 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
417 --build-project TestDriverTest
418 --test-command TestDriverTest subdir/test3
421 ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
423 "${CMake_SOURCE_DIR}/Tests/Dependency"
424 "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
425 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
426 --build-project Dependency
427 --build-generator ${CMAKE_TEST_GENERATOR}
428 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
430 -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
434 ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
436 "${CMake_SOURCE_DIR}/Tests/Dependency"
437 "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
438 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
439 --build-generator ${CMAKE_TEST_GENERATOR}
440 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
441 --build-project Dependency
445 ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
447 "${CMake_SOURCE_DIR}/Tests/Dependency"
448 "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
449 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
450 --build-generator ${CMAKE_TEST_GENERATOR}
451 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
452 --build-project Dependency
454 -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
458 ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
460 "${CMake_SOURCE_DIR}/Tests/Dependency"
461 "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
462 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
463 --build-generator ${CMAKE_TEST_GENERATOR}
464 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
465 --build-project Dependency
467 -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
468 --test-command exec3)
470 ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
472 "${CMake_SOURCE_DIR}/Tests/Dependency"
473 "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
474 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
475 --build-generator ${CMAKE_TEST_GENERATOR}
476 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
477 --build-project Dependency
479 -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
483 IF("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
485 # RPATH isn't supported under Syllable, so the tests don't
486 # find their libraries. In order to fix that LIBRARY_OUTPUT_DIR
487 # in the tests would have to be adjusted to ${EXECUTABLE_OUTPUT_DIR}/lib .
488 # For now we just require on Syllable that the user adjusts the DLL_PATH
489 # environment variable, so except the two tests below all other tests will succeed.
491 SET(_DLL_PATH "$ENV{DLL_PATH}")
492 IF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$")
493 MESSAGE(FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \"\\@bindir\\@/.\" to the DLL_PATH environment variable")
494 ENDIF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$")
495 IF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$")
496 MESSAGE(FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \"\\@bindir\\@/../lib\" to the DLL_PATH environment variable")
497 ENDIF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$")
499 ELSE("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
501 ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
503 "${CMake_SOURCE_DIR}/Tests/Jump"
504 "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
505 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
507 --build-generator ${CMAKE_TEST_GENERATOR}
508 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
510 -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
511 --test-command jumpExecutable
514 ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
516 "${CMake_SOURCE_DIR}/Tests/Jump"
517 "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
518 --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
519 --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
521 --build-generator ${CMAKE_TEST_GENERATOR}
522 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
523 --test-command jumpExecutable
526 ADD_TEST(Plugin ${CMAKE_CTEST_COMMAND}
528 "${CMake_SOURCE_DIR}/Tests/Plugin"
529 "${CMake_BINARY_DIR}/Tests/Plugin"
530 --build-generator ${CMAKE_TEST_GENERATOR}
531 --build-project Plugin
532 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
534 --test-command bin/example)
536 IF(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
537 ADD_TEST_MACRO(RuntimePath RuntimePath)
538 ENDIF(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
539 ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
541 ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
543 "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
544 "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
545 --build-generator ${CMAKE_TEST_GENERATOR}
546 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
547 --build-project LinkLineOrder
551 ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
553 "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
554 "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
555 --build-generator ${CMAKE_TEST_GENERATOR}
556 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
557 --build-project LinkLineOrder
561 IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
562 ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
564 "${CMake_SOURCE_DIR}/Source/kwsys"
565 "${CMake_BINARY_DIR}/Tests/kwsys"
566 --build-generator ${CMAKE_TEST_GENERATOR}
567 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
568 --build-project kwsys
569 --test-command kwsysTestsCxx testIOS
571 ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
573 IF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
575 ${CMAKE_TEST_MAKEPROGRAM} ARGS no_such_target --version
576 RETURN_VALUE res OUTPUT_VARIABLE out
579 IF("${out}" MATCHES "GNU")
581 ENDIF("${out}" MATCHES "GNU")
582 ENDIF("${res}" EQUAL 0)
583 ENDIF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
585 # only add this test on platforms that support it
586 # some old versions of make simply cannot handle spaces in paths
588 "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
589 "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
590 ADD_TEST(SubDirSpaces ${CMAKE_CTEST_COMMAND}
592 "${CMake_SOURCE_DIR}/Tests/SubDirSpaces"
593 "${CMake_BINARY_DIR}/Tests/SubDirSpaces"
595 "${CMake_BINARY_DIR}/Tests/SubDirSpaces/Executable Sources"
596 --build-generator ${CMAKE_TEST_GENERATOR}
597 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
598 --build-project SUBDIR
600 "${CMake_BINARY_DIR}/Tests/SubDirSpaces/ShouldBeHere"
601 "${CMake_BINARY_DIR}/Tests/SubDirSpaces/testfromsubdir.obj"
603 ENDIF (MAKE_IS_GNU OR
604 "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
605 "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
608 ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
610 "${CMake_SOURCE_DIR}/Tests/SubDir"
611 "${CMake_BINARY_DIR}/Tests/SubDir"
612 --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
613 --build-generator ${CMAKE_TEST_GENERATOR}
614 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
615 --build-project SUBDIR
617 "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
618 "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
621 ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
623 "${CMake_SOURCE_DIR}/Tests/SubDir"
624 "${CMake_BINARY_DIR}/Tests/SubDir"
625 --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
626 --build-generator ${CMAKE_TEST_GENERATOR}
627 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
628 --build-project SUBDIR
630 "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
631 "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
636 ADD_TEST_MACRO(PrecompiledHeader foo)
637 ENDIF(CMAKE_TEST_MSVC)
639 IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
640 ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
642 "${CMake_SOURCE_DIR}/Tests/MakeClean"
643 "${CMake_BINARY_DIR}/Tests/MakeClean"
644 --build-generator ${CMAKE_TEST_GENERATOR}
645 --build-project MakeClean
646 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
647 --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
648 --test-command check_clean
650 ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
652 IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
653 ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
655 "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
656 "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
658 --build-generator ${CMAKE_TEST_GENERATOR}
659 --build-project VSExternalInclude
660 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
661 --test-command VSExternalInclude)
662 ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
664 IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
665 SET(BundleTestInstallDir
666 "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory")
667 ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
669 "${CMake_SOURCE_DIR}/Tests/BundleTest"
670 "${CMake_BINARY_DIR}/Tests/BundleTest"
672 --build-generator ${CMAKE_TEST_GENERATOR}
673 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
674 --build-project BundleTest
675 --build-target install
676 # --build-target package
677 --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
678 "-DCMake_SOURCE_DIR:PATH=${CMAKE_SOURCE_DIR}"
680 ${BundleTestInstallDir}/Applications/SecondBundleExe.app/Contents/MacOS/SecondBundleExe)
682 ADD_TEST_MACRO(ObjC++ ObjC++)
683 ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
685 IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
686 CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
687 "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
688 ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
689 -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
690 --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
692 CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
693 "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
694 ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
695 -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
696 --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
698 CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
699 "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES)
700 ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND}
701 -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V
702 --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
704 # these tests take a long time, make sure they have it
705 IF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
706 # if timeouts have not already been set
707 GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT)
708 IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
709 SET_TESTS_PROPERTIES ( CTestTest PROPERTIES TIMEOUT 1500)
710 ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
712 GET_TEST_PROPERTY(CTestTest2 TIMEOUT PREVIOUS_TIMEOUT)
713 IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
714 SET_TESTS_PROPERTIES ( CTestTest2 PROPERTIES TIMEOUT 1500)
715 ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
717 GET_TEST_PROPERTY(CTestTest3 TIMEOUT PREVIOUS_TIMEOUT)
718 IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
719 SET_TESTS_PROPERTIES ( CTestTest3 PROPERTIES TIMEOUT 1500)
720 ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
721 ENDIF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
722 ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
724 IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
725 SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
726 ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
727 IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
728 # If there is CMakeLists.txt in the binary tree, assume in-source build
729 SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
730 ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
731 IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
734 ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
737 ${CMake_BINARY_DIR}/Tests/BootstrapTest
740 --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
741 --build-generator "${CMAKE_TEST_GENERATOR}"
743 ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
745 # provide more time for the bootstrap test
746 IF (COMMAND GET_TEST_PROPERTY)
747 GET_TEST_PROPERTY(BootstrapTest TIMEOUT PREVIOUS_TIMEOUT)
748 IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
749 SET_TESTS_PROPERTIES ( BootstrapTest PROPERTIES TIMEOUT 1500)
750 ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
751 ENDIF (COMMAND GET_TEST_PROPERTY)
753 ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
755 # fortran does not work for IDE builds because
756 # CMAKE_STANDARD_LIBRARIES needs to be per language
757 IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles"
758 OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
759 # see if we can find a fortran compiler on the machine
760 # if so, add the fortran test and see if it works.
761 SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
762 lf95 xlf95 fort gfortran f90 pgf90 xlf90
763 epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
764 FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES
765 ${CMAKE_Fortran_COMPILER_LIST} )
766 MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
767 IF(CMAKE_Fortran_COMPILER_FULLPATH)
768 ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
770 "${CMake_SOURCE_DIR}/Tests/Fortran"
771 "${CMake_BINARY_DIR}/Tests/Fortran"
772 --build-generator ${CMAKE_TEST_GENERATOR}
773 --build-project testf
774 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
776 --test-command testf)
777 ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
778 ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles"
779 OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
781 IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
783 IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
784 GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
785 FIND_FILE(JNI_H jni.h
786 "${JNIPATH}/../include"
787 "${JNIPATH}/../java/include")
789 FILE(READ "${JNI_H}" JNI_FILE)
790 IF("${JNI_FILE}" MATCHES "JDK1_2")
791 ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
793 "${CMake_SOURCE_DIR}/Tests/Java"
794 "${CMake_BINARY_DIR}/Tests/Java"
795 --build-generator ${CMAKE_TEST_GENERATOR}
796 --build-project hello
797 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
799 --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
800 --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
801 ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
803 ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
804 ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
806 # add some cross compiler tests, for now only with makefile based generators
807 IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
809 # if sdcc is found, build the SimpleCOnly project with sdcc
810 FIND_PROGRAM(SDCC_EXECUTABLE sdcc)
811 MARK_AS_ADVANCED(SDCC_EXECUTABLE)
813 ADD_TEST(SimpleCOnly_sdcc ${CMAKE_CTEST_COMMAND}
815 "${CMake_SOURCE_DIR}/Tests/SimpleCOnly"
816 "${CMake_BINARY_DIR}/Tests/SimpleCOnly_sdcc"
817 --build-generator ${CMAKE_TEST_GENERATOR}
818 --build-project SimpleC
819 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
821 "-DCMAKE_SYSTEM_NAME=Generic"
822 "-DCMAKE_C_COMPILER=${SDCC_EXECUTABLE}")
823 ENDIF(SDCC_EXECUTABLE)
826 FIND_PROGRAM(MINGW_CC_LINUX2WIN_EXECUTABLE i586-mingw32msvc-gcc)
827 FIND_PROGRAM(MINGW_CXX_LINUX2WIN_EXECUTABLE i586-mingw32msvc-g++)
828 MARK_AS_ADVANCED(MINGW_CC_LINUX2WIN_EXECUTABLE MINGW_CXX_LINUX2WIN_EXECUTABLE)
829 IF(MINGW_CC_LINUX2WIN_EXECUTABLE AND MINGW_CXX_LINUX2WIN_EXECUTABLE)
830 ADD_TEST(Simple_Mingw_Linux2Win ${CMAKE_CTEST_COMMAND}
832 "${CMake_SOURCE_DIR}/Tests/Simple"
833 "${CMake_BINARY_DIR}/Tests/Simple_Mingw_Linux2Win"
834 --build-generator ${CMAKE_TEST_GENERATOR}
835 --build-project Simple
836 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
838 "-DCMAKE_SYSTEM_NAME=Windows"
839 "-DCMAKE_C_COMPILER=${MINGW_CC_LINUX2WIN_EXECUTABLE}"
840 "-DCMAKE_CXX_COMPILER=${MINGW_CXX_LINUX2WIN_EXECUTABLE}")
841 ENDIF(MINGW_CC_LINUX2WIN_EXECUTABLE AND MINGW_CXX_LINUX2WIN_EXECUTABLE)
844 ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
846 IF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE)
847 # Will be set if the WX gui is on
848 ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
850 "${CMake_SOURCE_DIR}/Tests/UseWX"
851 "${CMake_BINARY_DIR}/Tests/UseWX"
852 --build-generator ${CMAKE_TEST_GENERATOR}
853 --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
854 --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
855 --build-project UsewxWidgets
856 --build-options -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets_CONFIG_EXECUTABLE}
859 ENDIF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE)
862 STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
864 IF(PREFIX_IS_FOR_TEST)
866 ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
867 ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
870 ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
871 ENDIF(PREFIX_IS_FOR_TEST)
874 IF(CMAKE_TEST_PLPLOT_DIR)
875 ADD_TEST(plplot ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_PLPLOT_DIR}/../../EasyDashboardScripts/plplot.cmake )
876 SET_TESTS_PROPERTIES ( plplot PROPERTIES TIMEOUT 5400)
877 ENDIF(CMAKE_TEST_PLPLOT_DIR)
879 IF(CMAKE_TEST_CHICKEN_DIR)
880 ADD_TEST(Chicken ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_CHICKEN_DIR}/../../EasyDashboardScripts/Chicken.cmake )
881 SET_TESTS_PROPERTIES ( Chicken PROPERTIES TIMEOUT 5400)
882 ENDIF(CMAKE_TEST_CHICKEN_DIR)
884 IF(CMAKE_TEST_KDELIBS_ALPHA_1_DIR)
885 ADD_TEST(KDELibsAlpha1 ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_KDELIBS_ALPHA_1_DIR}/../../EasyDashboardScripts/kdelibs.cmake )
886 SET_TESTS_PROPERTIES ( KDELibsAlpha1 PROPERTIES TIMEOUT 5400)
887 ENDIF(CMAKE_TEST_KDELIBS_ALPHA_1_DIR)