소스 검색

Make HTML test fail when --nonet arg is not available.

Also, emit "xmllint" and "xmllint --version" output before
failing so that we can inspect the output from all the
dashboard machines in CDash test results.
David Cole 15 년 전
부모
커밋
bb1df1ec8e
1개의 변경된 파일27개의 추가작업 그리고 3개의 파일을 삭제
  1. 27 3
      Utilities/CMakeLists.txt

+ 27 - 3
Utilities/CMakeLists.txt

@@ -153,9 +153,33 @@ if(BUILD_TESTING)
         ${HTML_FILES}
         )
     else()
-      add_test(CMake.HTML
-        ${LIBXML2_XMLLINT_EXECUTABLE} --valid --noout ${HTML_FILES}
-        )
+      # Intentionally committing this chunk of code for one night's run on the
+      # Nightly dashboard suite. This will help us identify all machines with
+      # older versions of xmllint installed. (This should match the set of
+      # machines where this test is failing at the moment anyhow...)
+      #
+      # After we identify all of them, we can decide whether to simply make
+      # this else block empty, skipping the test, or whether there should be
+      # some alternative equivalent test on such machines...
+      #
+      set(script "${CMAKE_CURRENT_BINARY_DIR}/CMake.HTML.cmake")
+
+      set(text "Intentionally fail when xmllint has no --nonet arg.")
+      set(text "${text} The CMake test suite should avoid network activity")
+      set(text "${text} when possible.")
+
+      if(NOT EXISTS "${script}.in")
+        file(WRITE "${script}.in" "execute_process(COMMAND
+  \"${LIBXML2_XMLLINT_EXECUTABLE}\" OUTPUT_VARIABLE noargs)
+message(\"\${noargs}\")
+execute_process(COMMAND
+  \"${LIBXML2_XMLLINT_EXECUTABLE}\" --version OUTPUT_VARIABLE version)
+message(\"\${version}\")
+message(FATAL_ERROR \"${text}\")
+")
+      endif()
+      configure_file("${script}.in" "${script}" @ONLY)
+      add_test(CMake.HTML ${CMAKE_CMAKE_COMMAND} -P ${script})
     endif()
   endif()
 endif()