X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2Fautotests%2FCMakeLists.txt;h=471922972f0087d9e812bc8d4d32b56d5ab29256;hb=9eec50464fa194e7468e9e233b94cb27cf2efe8e;hp=3a85964935b9ddb82f22e789a4361b68a683bb43;hpb=b436a03b3468dd15b27ee1c35e09d79b49192996;p=lyx.git diff --git a/development/autotests/CMakeLists.txt b/development/autotests/CMakeLists.txt index 3a85964935..471922972f 100644 --- a/development/autotests/CMakeLists.txt +++ b/development/autotests/CMakeLists.txt @@ -4,41 +4,126 @@ # Copyright (c) 2012 Kornel Benko kornel@lyx.org # -if(UNIX) +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 + find_program(PCREGREP_EXE "pcregrep") + if (NOT PCREGREP_EXE) + list(APPEND Missing "pcregrep") + endif() + find_program(WMCTRL_EXE "wmctrl") + if(NOT WMCTRL_EXE) + list(APPEND Missing "wmctrl") + endif() + # This is needed to build xvkbd + # Programs pcregrep wmctrl and xvkbd are used in subsequent scripts + # while testing + + # Check for needed libraries for xvkbd + # do not add autotests, if any of them is lacking + find_package(X11) - if(X11_FOUND) - project(autotests) + if(NOT X11_FOUND) + list(APPEND Missing "X11") + endif() + find_package(PkgConfig) + if(PKG_CONFIG_FOUND) + foreach(_lb "xaw7" "xmu" "xtst") + pkg_check_modules(${_lb}LIB ${_lb}) + if(${_lb}LIB_LIBRARIES) + list(APPEND XVFBDLIBS ${${_lb}LIB_LIBRARIES}) + else() + list(APPEND Missing ${_lb}) + endif() + endforeach() + else() + foreach(_lb "Xaw7" "Xmu") + find_library(${_lb}LIB ${_lb}) + if(${_lb}LIB) + list(APPEND XVFBDLIBS ${${_lb}LIB}) + else() + list(APPEND Missing ${_lb}) + endif() + endforeach() + foreach(_lb Xt XTest X11) + if(X11_${_lb}_LIB) + list(APPEND XVFBDLIBS ${X11_${_lb}_LIB}) + else() + list(APPEND Missing ${_lb}) + endif() + endforeach() + endif() + if (XVFBDLIBS) + list(REMOVE_DUPLICATES XVFBDLIBS) + endif() - add_subdirectory(xvkbd) + if(Missing) + message(STATUS "Missing Libraries or programs to create xvkbd: ${Missing}") + message(STATUS "cmake build is therefore omitting keytests") + endif() + + find_program(XVKBD_EXE NAMES "xvkbd") + if (XVKBD_EXE MATCHES "NOTFOUND") + message(STATUS "Missing xvkbd, omitting keytests") + list(APPEND Missing "xvkbd") + endif() + + 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 "auto_${_t}" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" - COMMAND ${CMAKE_COMMAND} + 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=${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR} - -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} + -DBINDIR=$ + -DLYX=${_lyx} + -DXVKBD_EXE=${XVKBD_EXE} + -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() - add_test(NAME lyx_export - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" - COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR} -Dlyx=${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/lyx -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - set_tests_properties(lyx_export PROPERTIES DEPENDS lyx) endif() endif() + +if (LYX_ENABLE_EXPORT_TESTS) + set(lyx_ignored_count 0) + include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake) + message(STATUS "Number of ignored export tests now ${lyx_ignored_count}") + set(LYX_ignored_count ${lyx_ignored_count} PARENT_SCOPE) +endif()