diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-01-11 12:09:07 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-01-11 12:09:07 -0800 |
commit | 0e7d3a2e6ef6430e2de7eafc483b0ffe982d970d (patch) | |
tree | 584e61b7222e973416c4abd9fea3d82a6eeba46f | |
parent | 2a59afee08f9abdb647e4d7c9a01b659b08b31f4 (diff) |
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.
-rw-r--r-- | test/CMakeLists.txt | 57 |
1 files 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) + |