From 0e7d3a2e6ef6430e2de7eafc483b0ffe982d970d Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 11 Jan 2015 12:09:07 -0800 Subject: Run the spec tests only if python3 is found. Otherwise skip them, running a dummy test skipping_spec_tests to signal that they are being skipped. To require the spec tests, do `cmake .. -DSPEC_TESTS=1`. Closes #278. Although I still have some qualms about tests that can appear to pass while being incomplete, I see the advantages of allowing the package to build without python3. --- test/CMakeLists.txt | 57 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3d90b38..11a27c6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,22 +1,13 @@ # To get verbose output: cmake --build build --target "test" -- ARGS='-V' -find_package(PythonInterp 3 REQUIRED) -set(PYTHON ${PYTHON_EXECUTABLE}) +# By default, we run the spec tests only if python3 is available. +# To require the spec tests, compile with -DSPEC_TESTS=1 -add_test(html_normalization - ${PYTHON} "-m" "doctest" - "${CMAKE_CURRENT_SOURCE_DIR}/normalize.py" -) - -add_test(spectest_library - ${PYTHON} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" - "${CMAKE_SOURCE_DIR}/spec.txt" "--library-dir" "${CMAKE_BINARY_DIR}/src" -) - -add_test(pathological_tests_library - ${PYTHON} "${CMAKE_CURRENT_SOURCE_DIR}/pathological_tests.py" - "--library-dir" "${CMAKE_BINARY_DIR}/src" -) +if (SPEC_TESTS) + find_package(PythonInterp 3 REQUIRED) +else(SPEC_TESTS) + find_package(PythonInterp 3) +endif(SPEC_TESTS) add_test(NAME api_test COMMAND api_test) @@ -24,9 +15,35 @@ if (WIN32) file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/src WIN_DLL_DIR) set_tests_properties(api_test PROPERTIES ENVIRONMENT "PATH=${WIN_DLL_DIR};$ENV{PATH}" - ) + ) endif(WIN32) -add_test(spectest_executable - ${PYTHON} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_SOURCE_DIR}/spec.txt" "--program" "${CMAKE_BINARY_DIR}/src/cmark" -) +IF (PYTHONINTERP_FOUND) + + add_test(html_normalization + ${PYTHON_EXECUTABLE} "-m" "doctest" + "${CMAKE_CURRENT_SOURCE_DIR}/normalize.py" + ) + + add_test(spectest_library + ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" + "${CMAKE_SOURCE_DIR}/spec.txt" "--library-dir" "${CMAKE_BINARY_DIR}/src" + ) + + add_test(pathological_tests_library + ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/pathological_tests.py" + "--library-dir" "${CMAKE_BINARY_DIR}/src" + ) + + add_test(spectest_executable + ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_SOURCE_DIR}/spec.txt" "--program" "${CMAKE_BINARY_DIR}/src/cmark" + ) + +ELSE(PYTHONINTERP_FOUND) + + message("\n*** A python 3 interpreter is required to run the spec tests.\n") + add_test(skipping_spectests + echo "Skipping spec tests, because no python 3 interpreter is available.") + +ENDIF(PYTHONINTERP_FOUND) + -- cgit v1.2.3