X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2Fautotests%2FCMakeLists.txt;h=485e9767eee2aa6ecf2dcaf95cb1321bd23677b1;hb=90adb4f3146522cf0d3dfe8ac3400eb688515c05;hp=ecb49b59fc9728a15f4fd4e527cfbe97eeea6631;hpb=1d3e77b515545c81c5d0d35e75dc58523fcf7848;p=lyx.git diff --git a/development/autotests/CMakeLists.txt b/development/autotests/CMakeLists.txt index ecb49b59fc..485e9767ee 100644 --- a/development/autotests/CMakeLists.txt +++ b/development/autotests/CMakeLists.txt @@ -4,7 +4,11 @@ # Copyright (c) 2012 Kornel Benko kornel@lyx.org # -if(Q_WS_X11) +set(LYX_HOME "out-home") +set(LOCALE_DIR "${CMAKE_CURRENT_BINARY_DIR}/locale") +file(MAKE_DIRECTORY "${LOCALE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}") + +if(QT_USES_X11) set(Missing) set(XVFBDLIBS) # Make sure, the needed programs are in PATH @@ -60,118 +64,56 @@ if(Q_WS_X11) if(Missing) message(STATUS "Missing Libraries or programs to create xvkbd: ${Missing}") - message(STATUS "cmake build is therefore omitting autotests") + message(STATUS "cmake build is therefore omitting keytests") endif() - if(NOT Missing) - project(autotests) + if(Missing OR NOT LYX_ENABLE_KEYTESTS) + set(_runtest FALSE) + else() + project(keytest) add_subdirectory(xvkbd) + set(_runtest TRUE) set(KEYTEST "${CMAKE_CURRENT_SOURCE_DIR}/keytest.py") - set(LYX_HOME "out-home") - set(LYX_USERDIR "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}/.lyx") - set(LOCALE_DIR "${CMAKE_CURRENT_BINARY_DIR}/locale") file(GLOB TESTST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*-in.txt") file(GLOB TESTSS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*-in.sh") - list(REMOVE_ITEM TESTST hello-world-in.txt first-time-in.txt) + set(_firsttxt first-time-in.txt hello-world-in.txt) + foreach(_f ${_firsttxt}) + list(FIND TESTST ${_f} _ff) + if(NOT _ff GREATER -1) + set(_runtest FALSE) + break() + endif() + endforeach() + list(REMOVE_ITEM TESTST ${_firsttxt}) list(SORT TESTST) - file(MAKE_DIRECTORY "${LYX_USERDIR}" "${LOCALE_DIR}") - - foreach(_tf first-time-in.txt hello-world-in.txt ${TESTST}) + endif() + if(_runtest) + foreach(_tf ${_firsttxt} ${TESTST}) string(REGEX REPLACE "-in\\.(txt|sh)" "" _t ${_tf}) - add_test(NAME autotests/${_t} + add_test(NAME keytest/${_t} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" COMMAND ${CMAKE_COMMAND} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} -DAUTOTEST_ROOT=${TOP_SRC_DIR}/development/autotests -DPO_BUILD_DIR=${TOP_BINARY_DIR}/po -DKEYTEST_INFILE=${_tf} -DBINDIR=$ -DLYX=${_lyx} -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} + -DLYX_USERDIR_VER=${LYX_USERDIR_VER} -DKEYTEST_OUTFILE=${_t}-out.txt -DPACKAGE=${PACKAGE} + -DFRONTEND=${LYX_USE_QT} -DLOCALE_DIR=${LOCALE_DIR} -P ${TOP_SRC_DIR}/development/autotests/single-test.cmake) + settestlabel(keytest/${_t} "key") + set_tests_properties(keytest/${_t} PROPERTIES RUN_SERIAL ON) endforeach() endif() endif() -macro(getoutputformats filepath varname) - file(STRINGS "${filepath}" lines) - set(out_formats "xhtml" "pdf" "pdf2" "pdf5") - set(${varname} ${out_formats}) - foreach(_l ${lines}) - if(_l MATCHES "^\\\\default_output_format +\([^ ]+\)") - if(CMAKE_MATCH_1 STREQUAL "default") - set(found ${out_formats}) - elseif(CMAKE_MATCH_1 STREQUAL "xhtml") - set(found "xhtml") - else() - set(found "xhtml" ${CMAKE_MATCH_1}) - endif() - set(${varname} ${found}) - break() - endif() - endforeach() -endmacro() - -macro(getreverted testname reverted listreverted) - list(FIND ${listreverted} ${${testname}} _idx) - if (${_idx} LESS 0) - set(${reverted} 0) - else() - set(${reverted} 1) - set(${testname} "INVERTED_SEE-README.ctest_${${testname}}") - endif() -endmacro() - -foreach(libsubfolder doc examples templates) - set(LIBSUB_SRC_DIR "${TOP_SRC_DIR}/lib/${libsubfolder}") - file(GLOB_RECURSE lyx_files RELATIVE "${LIBSUB_SRC_DIR}" "${LIBSUB_SRC_DIR}/*.lyx") - list(SORT lyx_files) - # Now create 2 lists. One for files in a language dir, one without - set(lang_lyx_files) - set(nolang_lyx_files) - foreach(f ${lyx_files}) - string(REGEX MATCHALL "^[a-z][a-z](_[A-Z][A-Z])?\\/" _v ${f}) - if(_v) - list(APPEND lang_lyx_files ${f}) - else() - list(APPEND nolang_lyx_files ${f}) - endif() - endforeach() - file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/revertedTests" revertedTests) - foreach(f ${nolang_lyx_files} ${lang_lyx_files}) - # Strip extension - string(REGEX REPLACE "\\.lyx$" "" f ${f}) - set(TestName "export/${libsubfolder}/${f}_lyx16") - getreverted(TestName reverted revertedTests) - add_test(NAME ${TestName} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" - COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} - -Dlyx=$ - -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} - -Dformat=lyx16x - -Dextension=16.lyx - -Dfile=${f} - -Dreverted=${reverted} - -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - getoutputformats("${LIBSUB_SRC_DIR}/${f}.lyx" formatlist) - foreach(format ${formatlist}) - set(TestName "export/${libsubfolder}/${f}_${format}") - getreverted(TestName reverted revertedTests) - add_test(NAME ${TestName} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" - COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} - -Dlyx=$ - -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} - -Dformat=${format} - -Dextension=${format} - -Dfile=${f} - -Dreverted=${reverted} - -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - endforeach() - endforeach() -endforeach() - +if (LYX_ENABLE_EXPORT_TESTS) + include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake) +endif()