From 416242476289d423eb392345555f3dad941df544 Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Mon, 30 May 2016 09:50:22 +0200 Subject: [PATCH] Cmake xhtml export tests: Use command xmllint to test the export result --- development/autotests/ExportTests.cmake | 2 ++ development/autotests/export.cmake | 25 +++++++++++++++++++++++++ development/autotests/ignoredTests | 4 ++++ 3 files changed, 31 insertions(+) diff --git a/development/autotests/ExportTests.cmake b/development/autotests/ExportTests.cmake index f448d800ca..562c639e15 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 29487d4c6c..c89c3f63ff 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 06e9b482ee..01bd26e04f 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 -- 2.39.2