commit 416242476289d423eb392345555f3dad941df544
Author: Kornel Benko <kor...@lyx.org>
Date:   Mon May 30 09:50:22 2016 +0200

    Cmake xhtml export tests: Use command xmllint to test the export result

diff --git a/development/autotests/ExportTests.cmake 
b/development/autotests/ExportTests.cmake
index f448d80..562c639 100644
--- a/development/autotests/ExportTests.cmake
+++ b/development/autotests/ExportTests.cmake
@@ -27,6 +27,7 @@
 #
 
 find_package(Perl)
+find_program(XMLLINT_EXECUTABLE xmllint)
 
 if(PERL_FOUND)
   set(DVI_FORMATS "dvi" "dvi3")
@@ -401,6 +402,7 @@ foreach(libsubfolderx autotests/export lib/doc lib/examples 
lib/templates autote
             -Dinverted=${inverted}
             -DTOP_SRC_DIR=${TOP_SRC_DIR}
             -DPERL_EXECUTABLE=${PERL_EXECUTABLE}
+            -DXMLLINT_EXECUTABLE=${XMLLINT_EXECUTABLE}
             -P "${TOP_SRC_DIR}/development/autotests/export.cmake")
           setmarkedtestlabel(${TestName} ${mytestlabel}) # check for suspended 
pdf/dvi exports
         endif()
diff --git a/development/autotests/export.cmake 
b/development/autotests/export.cmake
index 29487d4..c89c3f6 100755
--- a/development/autotests/export.cmake
+++ b/development/autotests/export.cmake
@@ -25,6 +25,7 @@
 #       -Dinverted=[01] \
 #       -DTOP_SRC_DIR=${TOP_SRC_DIR}
 #       -DPERL_EXECUTABLE=${PERL_EXECUTABLE}
+#       -DXMLLINT_EXECUTABLE=${XMLLINT_EXECUTABLE}
 #       -P "${TOP_SRC_DIR}/development/autotests/export.cmake"
 #
 
@@ -138,6 +139,30 @@ else()
       set(_err -1)
     else()
       message(STATUS "Expected result file \"${result_file_name}\" exists")
+      if (format MATCHES "xhtml")
+        if (XMLLINT_EXECUTABLE)
+          # check the created xhtml file
+          execute_process(
+            COMMAND ${XMLLINT_EXECUTABLE} --sax --html --valid  
"${result_file_name}"
+            OUTPUT_VARIABLE xmlout
+            ERROR_VARIABLE xmlerr
+            RESULT_VARIABLE _err)
+          file(WRITE "${result_file_name}.sax_out" ${xmlout})
+          if (NOT _err)
+            # check if sax-parser output contains error messages
+            execute_process(
+              COMMAND ${PERL_EXECUTABLE} 
"${TOP_SRC_DIR}/development/autotests/examineXmllintOutput.pl" 
"${result_file_name}.sax_out"
+              OUTPUT_VARIABLE xmlout
+              RESULT_VARIABLE _err)
+          endif()
+          if (NOT _err)
+            if (NOT "${xmlout}" STREQUAL "")
+              message(STATUS "${xmlout}")
+              set(_err -1)
+            endif()
+          endif()
+        endif()
+      endif()
     endif()
   endif()
 endif()
diff --git a/development/autotests/ignoredTests 
b/development/autotests/ignoredTests
index 06e9b48..01bd26e 100644
--- a/development/autotests/ignoredTests
+++ b/development/autotests/ignoredTests
@@ -40,3 +40,7 @@ export/examples/(Literate|noweb2lyx)_lyx16
 # Document class "Docbook article (SGML)" does not work with LaTeX:
 export/examples/docbook_article_(dvi3|pdf[245]).*
 export/templates/DocBook_article_(dvi3|pdf[245]).*
+
+# Ignore MergedManuals_xhtml because the test is very time-consuming
+# and the underlying subdocuments are already tested
+export/doc/(ja/|)MergedManuals_xhtml

Reply via email to