Selaa lähdekoodia

Increase coverage. Add test of class cmakewizard. (cmake -i 'mode')

David Cole 16 vuotta sitten
vanhempi
sitoutus
d8efcfc787
2 muutettua tiedostoa jossa 57 lisäystä ja 0 poistoa
  1. 5 0
      Tests/CMakeLists.txt
  2. 52 0
      Tests/CMakeWizardTest.cmake

+ 5 - 0
Tests/CMakeLists.txt

@@ -1312,6 +1312,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
       )
   ENDIF(NOT EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
 
+  ADD_TEST(CMakeWizardTest ${CMAKE_COMMAND}
+    -D build_dir:STRING=${CMAKE_CURRENT_BINARY_DIR}/CMakeWizardTest
+    -D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3
+    -D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND}
+    -P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake)
 ENDIF(BUILD_TESTING)
 
 SUBDIRS(CMakeTests)

+ 52 - 0
Tests/CMakeWizardTest.cmake

@@ -0,0 +1,52 @@
+message("CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
+
+message(STATUS "build_dir='${build_dir}'")
+
+message(STATUS "source_dir='${source_dir}'")
+
+
+execute_process(COMMAND ${CMAKE_COMMAND} -E
+  remove_directory ${build_dir}
+  TIMEOUT 5)
+
+execute_process(COMMAND ${CMAKE_COMMAND} -E
+  make_directory ${build_dir}
+  TIMEOUT 5)
+
+execute_process(COMMAND ${CMAKE_COMMAND} -E
+  copy_directory ${source_dir} ${build_dir}/src
+  TIMEOUT 5)
+
+execute_process(COMMAND ${CMAKE_COMMAND} -E
+  make_directory ${build_dir}/build
+  TIMEOUT 5)
+
+# This is enough to answer 32 questions with "the default answer is ok"...
+#
+file(WRITE ${build_dir}/input.txt
+  "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
+
+
+message(STATUS "running wizard mode (cmake -i)...")
+
+execute_process(COMMAND ${CMAKE_COMMAND} -i ../src
+  INPUT_FILE ${build_dir}/input.txt
+  WORKING_DIRECTORY ${build_dir}/build
+  TIMEOUT 5
+  )
+
+
+message(STATUS "building...")
+
+execute_process(COMMAND ${CMAKE_COMMAND} --build .
+  WORKING_DIRECTORY ${build_dir}/build
+  TIMEOUT 5
+  )
+
+
+message(STATUS "testing...")
+
+execute_process(COMMAND ${CMAKE_CTEST_COMMAND}
+  WORKING_DIRECTORY ${build_dir}/build
+  TIMEOUT 5
+  )