aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-01-11 12:09:07 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2015-01-11 12:09:07 -0800
commit0e7d3a2e6ef6430e2de7eafc483b0ffe982d970d (patch)
tree584e61b7222e973416c4abd9fea3d82a6eeba46f /test
parent2a59afee08f9abdb647e4d7c9a01b659b08b31f4 (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.
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt57
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)
+