X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2Ftest%2FCMakeLists.txt;h=55510a43a3de9502b6e091f35db8e0475cd87719;hb=3628ceec480c3d8fa9673f80f781eb1153fb9e1f;hp=e85222f070cde92b7082dc720a9a78be06dbe2b3;hpb=ed5dfa9cd76a5775d1bafe5471cbeb488ce7c7e9;p=lyx.git diff --git a/src/tex2lyx/test/CMakeLists.txt b/src/tex2lyx/test/CMakeLists.txt index e85222f070..55510a43a3 100644 --- a/src/tex2lyx/test/CMakeLists.txt +++ b/src/tex2lyx/test/CMakeLists.txt @@ -6,40 +6,98 @@ project(test) -set(_test_depend "test.ltx") -set(_test_output) - -foreach(_arg test-structure test-insets box-color-size-space-align CJK XeTeX-polyglossia) - list(APPEND _test_depend "${TOP_SRC_DIR}/src/tex2lyx/test/${_arg}.tex") - list(APPEND _test_output "${CMAKE_CURRENT_BINARY_DIR}/${_arg}.lyx.tex") - list(APPEND _test_output "${CMAKE_CURRENT_BINARY_DIR}/${_arg}.lyx.lyx") -endforeach(_arg) - -ADD_CUSTOM_COMMAND( - OUTPUT ${_test_output} - COMMAND ${LYX_PYTHON_EXECUTABLE} - ARGS "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py" - "${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${_tex2lyx}" - "${TOP_SRC_DIR}/lib/scripts" - "${CMAKE_CURRENT_BINARY_DIR}" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - DEPENDS ${_tex2lyx} ${_test_depend} - COMMENT "${LYX_PYTHON_EXECUTABLE}" "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py" - "${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${_tex2lyx}" - "${TOP_SRC_DIR}/lib/scripts" - "${CMAKE_CURRENT_BINARY_DIR}" -) +#file(GLOB _tex_tests RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*.ltx" "${CMAKE_CURRENT_SOURCE_DIR}/*.tex") +# +#list(REMOVE_ITEM _tex_tests DummyDocument.tex) + +set(_tex_tests test.ltx + algo2e.tex + box-color-size-space-align.tex + CJK.tex + CJKutf8.tex + test-insets-basic.tex + test-insets.tex + test-memoir.tex + test-modules.tex + test-refstyle-theorems.tex + test-scr.tex + test-structure.tex + verbatim.tex + XeTeX-polyglossia.tex) + +set(runtestsScript "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py") +set(scriptDir "${TOP_SRC_DIR}/lib/scripts") -#ADD_CUSTOM_TARGET(test DEPENDS ${_tex2lyx} ${_lyx} ${_test_output}) +foreach(_fl ${_tex_tests}) + set(fl ${_fl}) + add_test(NAME tex2lyx/roundtrip/${_fl} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND ${CMAKE_COMMAND} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} + -DLYX_USERDIR_VER=${LYX_USERDIR_VER} + -DLYX_PYTHON_EXECUTABLE=${LYX_PYTHON_EXECUTABLE} + -DPY_SCRIPT=${runtestsScript} + -DTEX2LYX_EXE=$ + -DSCRIPT_DIR=${scriptDir} + -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR} + -DTESTFILE=${fl} + -P ${TOP_SRC_DIR}/src/tex2lyx/test/runtests.cmake) + set_tests_properties(tex2lyx/roundtrip/${_fl} PROPERTIES RESOURCE_LOCK "runtests.lock" LABELS "roundtrip") + add_test(NAME tex2lyx/cmplyx/${_fl} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND ${CMAKE_COMMAND} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} + -DLYX_USERDIR_VER=${LYX_USERDIR_VER} + -DLYX_PYTHON_EXECUTABLE=${LYX_PYTHON_EXECUTABLE} + -DPY_SCRIPT=${runtestsScript} + -DFIRST_PARAM=uselyx2lyx + -DTEX2LYX_EXE=$ + -DSCRIPT_DIR=${scriptDir} + -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR} + -DTESTFILE=${fl} + -P ${TOP_SRC_DIR}/src/tex2lyx/test/runtests.cmake) + set_tests_properties(tex2lyx/cmplyx/${_fl} PROPERTIES RESOURCE_LOCK "runtests.lock" LABELS "cmplyx") +endforeach() -add_test(NAME build_tex2lyx - COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${_tex2lyx}) -add_test(NAME roundtrip_tex2lyx +add_dependencies(lyx_run_tests ${_tex2lyx} ${_lyx}) + +set(LyxTestFiles "") # "'" separated test-filenames +set(LyxRemoveFiles) # Extra files created by runtests.py +foreach(_fl ${_tex_tests}) + set(LyxTestFiles "${LyxTestFiles}'${_fl}") + if (_fl MATCHES "^\(.*\)\\.\([^\\.]+)$") + list(APPEND LyxRemoveFiles "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_MATCH_1}.lyx.tex") + endif() +endforeach() +foreach(_lrf "DummyDocument.lyx.tex" "Dummy~Document.lyx.tex" "foo.pdf" "xfigtest.pdf" "xfigtest.pdftex_t") + list(APPEND LyxRemoveFiles "${CMAKE_CURRENT_SOURCE_DIR}/${_lrf}") +endforeach() +list(APPEND LyxRemoveFiles "${TOP_SRC_DIR}/lib/examples/longsheet.tex") + +add_custom_command( + OUTPUT Tex2lyxFilesUpdated + COMMAND ${CMAKE_COMMAND} + -DCOMMAND="${LYX_PYTHON_EXECUTABLE}" + -DENVIRON="${LYX_USERDIR_VER}=${LYX_TESTS_USERDIR}" + -DPARAMS="${runtestsScript}'$'${scriptDir}'${CMAKE_CURRENT_SOURCE_DIR}" + -DSINGLEPARLIST="${LyxTestFiles}" + -P ${TOP_SRC_DIR}/src/tex2lyx/test/env_custom_command.cmake + COMMAND ${CMAKE_COMMAND} -E touch Tex2lyxFilesUpdated WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py" - "${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${_tex2lyx}" - "${TOP_SRC_DIR}/lib/scripts" - "${CMAKE_CURRENT_BINARY_DIR}") + DEPENDS ${_tex2lyx} ${_lyx} + ) -set_tests_properties(roundtrip_tex2lyx PROPERTIES DEPENDS build_tex2lyx) +add_custom_target(updatetex2lyxtests DEPENDS Tex2lyxFilesUpdated) +set_target_properties(updatetex2lyxtests PROPERTIES FOLDER "tests/tex2lyx") + +# In order to not pollute the source directory +# now remove some untracked files created by the target updatetex2lyxtests +add_custom_command( + OUTPUT UpdateFilesRemoved + COMMAND ${CMAKE_COMMAND} -E remove -f ${LyxRemoveFiles} + COMMAND ${CMAKE_COMMAND} -E touch UpdateFilesRemoved + DEPENDS Tex2lyxFilesUpdated +) +add_custom_target(cleanupdatetex2lyxtests DEPENDS UpdateFilesRemoved) +set_target_properties(cleanupdatetex2lyxtests PROPERTIES FOLDER "tests/tex2lyx")