From da8be0224cc939f3d0eb2ea1489dbba12f8d6dad Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Sun, 1 Sep 2019 22:51:18 +0200 Subject: [PATCH] CMake: Port "make xml-runtest" over from GNU Autotools --- expat/CMakeLists.txt | 49 ++++++++++++++++++++++++++++++++++++++++++++ expat/Changes | 1 + 2 files changed, 50 insertions(+) diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt index 2d80d836..b046e631 100644 --- a/expat/CMakeLists.txt +++ b/expat/CMakeLists.txt @@ -391,6 +391,55 @@ if(EXPAT_BUILD_FUZZERS) endforeach() endif(EXPAT_BUILD_FUZZERS) +# +# Custom target "run-xmltest" +# +if(EXPAT_BUILD_TOOLS AND NOT MSVC) + add_custom_target( + xmlts-zip-downloaded + COMMAND + sh -c 'test -f xmlts.zip || wget --output-document=xmlts.zip https://www.w3.org/XML/Test/xmlts20080827.zip' + BYPRODUCTS + tests/xmlts.zip + WORKING_DIRECTORY + tests/) + + add_custom_target( + xmlts-zip-extracted + COMMAND + sh -c 'test -d xmlconf || unzip -q xmlts.zip' + BYPRODUCTS + tests/xmlconf + WORKING_DIRECTORY + tests/) + add_dependencies(xmlts-zip-extracted xmlts-zip-downloaded) + + add_custom_target( + xmltest-sh-been-run + COMMAND + sh -c '${CMAKE_CURRENT_SOURCE_DIR}/tests/xmltest.sh "bash ${CMAKE_CURRENT_BINARY_DIR}/run.sh $" 2>&1 | tee tests/xmltest.log' + BYPRODUCTS + tests/xmltest.log) + add_dependencies(xmltest-sh-been-run xmlts-zip-extracted xmlwf) + + add_custom_target( + xmltest-log-fixed + COMMAND + ${CMAKE_CURRENT_SOURCE_DIR}/fix-xmltest-log.sh tests/xmltest.log + DEPENDS + tests/xmltest.log) + add_dependencies(xmltest-log-fixed xmltest-sh-been-run) + + add_custom_target( + xmltest-log-verified + COMMAND + diff -u ${CMAKE_CURRENT_SOURCE_DIR}/tests/xmltest.log.expected tests/xmltest.log) + add_dependencies(xmltest-log-verified xmltest-log-fixed) + + add_custom_target(run-xmltest) + add_dependencies(run-xmltest xmltest-log-verified) +endif() + # # Documentation # diff --git a/expat/Changes b/expat/Changes index 4244c2bc..c29d69fb 100644 --- a/expat/Changes +++ b/expat/Changes @@ -58,6 +58,7 @@ Release x.x.x xxx xxx xx xxxx #265 CMake: Fix linking with MinGW #330 CMake: Add full support for MinGW; to enable, use -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake + #330 CMake: Port "make run-xmltest" from GNU Autotools to CMake #316 CMake: Windows: Make binary postfix match MSVC Old: expat[d].lib New: expat[w][d][MD|MT].lib