# while testing
find_package(X11)
if(X11_FOUND AND PCREGREP_EXE AND WMCTRL_EXE)
- message(STATUS "PCREGREP_EXE and WMCTRL_EXE found")
+ #message(STATUS "PCREGREP_EXE and WMCTRL_EXE found")
project(autotests)
add_subdirectory(xvkbd)
-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}
+ -DBINDIR=$<TARGET_FILE_DIR:lyx>
-DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}
-DKEYTEST_OUTFILE=${_t}-out.txt
-DPACKAGE=${PACKAGE}
endforeach()
endif()
endif()
-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)
+
+file(GLOB lyx_files RELATIVE "${TOP_SRC_DIR}/lib/doc" "${TOP_SRC_DIR}/lib/doc/*.lyx")
+foreach(f ${lyx_files})
+ # Strip extension
+ string(REGEX REPLACE "\\.lyx$" "" f ${f})
+ add_test(NAME export_${f}_lyx16
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
+ COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc
+ -Dlyx=$<TARGET_FILE:lyx>
+ -Dformat=lyx16x
+ -Dextension=16.lyx
+ -Dfile=${f}
+ -P "${TOP_SRC_DIR}/development/autotests/export.cmake")
+ add_test(NAME export_${f}_xhtml
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
+ COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc
+ -Dlyx=$<TARGET_FILE:lyx>
+ -Dformat=xhtml
+ -Dextension=xhtml
+ -Dfile=${f}
+ -P "${TOP_SRC_DIR}/development/autotests/export.cmake")
+endforeach()
+
+
# Copyright (c) 2012 Kornel Benko kornel@lyx.org
#
#
-# LYX_ROOT = ${TOP_SRC_DIR}
-# lyx = ${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/lyx
+# LYX_ROOT = ${TOP_SRC_DIR}/lib/doc
+# lyx =
+# format = lyx16x|xhtml
+# extension = 16.lyx|xhtml
+# file = xxx
#
# Script should be called like:
# cmake -DLYX_ROOT=xxx \
# -Dlyx=xxx \
+# -Dformat=xxx \
+# -Dextension=xxx \
+# -Dfile=xxx \
# -P "${TOP_SRC_DIR}/development/autotests/export.cmake"
#
-file(GLOB lyx_files "${LYX_ROOT}/lib/doc/*.lyx")
-message(STATUS "lyx_files = ${lyx_files}")
-set(ERRORS)
-foreach(format lyx16x xhtml)
- foreach(f ${lyx_files})
- message(STATUS "Executing ${lyx} -E ${format} localtest.${format} ${f}")
- execute_process(COMMAND ${CMAKE_COMMAND} -E remove localtest.xhtml localtest.16.lyx)
- execute_process(
- COMMAND ${lyx} -E ${format} localtest.${format} ${f}
- RESULT_VARIABLE _err)
- string(COMPARE NOTEQUAL ${_err} 0 _erg)
- if(_erg)
- list(APPEND ERRORS "Exporting ${f} to ${format}")
+message(STATUS "Executing ${lyx} -E ${format} ${file}.${extension} ${LYX_ROOT}/${file}.lyx")
+execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${file}.${extension})
+execute_process(
+ COMMAND ${lyx} -E ${format} ${file}.${extension} "${LYX_ROOT}/${file}.lyx"
+ RESULT_VARIABLE _err)
+string(COMPARE NOTEQUAL ${_err} 0 _erg)
+if(erg)
+ message(STATUS "Exporting ${f}.lyx to ${format}")
+ message(FATAL_ERROR "Export failed")
+endif()
+# This script invokes the keytest.py script with the simple set-up needed
+# to re-run deterministic regression tests that one would like to have.
+#
+# AUTOTEST_ROOT = ${LYX_ROOT}/development/autotests
+# KEYTEST_INFILE = xxx-in.txt
+# KEYTEST_OUTFILE = xxx-out.txt
+# BINDIR = ${BUILD_DIR}/bin
+# WORKDIR = ${BUILD_DIR}/autotests/out-home
+# LOCALE_DIR = ${BUILD_DIR}/autotests/locale
+# PO_BUILD_DIR = ${BUILD_DIR}/po
+# PACKAGE = lyx2.1
+#
+# Script should be called like:
+# cmake -DAUTOTEST_ROOT=xxxx \
+# -DKEYTEST_INFILE=xxxx \
+# -DKEYTEST_OUTFILE=xxx \
+# -DBINDIR=xxx \
+# -DWORKDIR=xxx \
+# -DLOCALE_DIR=xxx \
+# -DPO_BUILD_DIR=xxx \
+# -DPACKAGE=xxx \
+# -P ${AUTOTEST_ROOT}/single-test.cmake
+
+set(KEYTEST "${AUTOTEST_ROOT}/keytest.py")
+
+execute_process(COMMAND pidof lyx OUTPUT_VARIABLE LYX_PID RESULT_VARIABLE pidstat OUTPUT_VARIABLE pidres)
+message(STATUS "pidres = ${pidres}")
+if (NOT pidstat)
+ # lyx already running, remove trailing '\n' from pid
+ string(REGEX REPLACE "\n" "" pidres ${pidres})
+ execute_process(COMMAND wmctrl -l -p OUTPUT_VARIABLE _wmco)
+ string(REGEX REPLACE "[\n]+" ";" _wmc ${_wmco})
+ foreach(_w ${_wmc})
+ string(REGEX MATCH "${pidres}" _wr ${_w})
+ if (${_wr} MATCHES ${pidres})
+ # this entry contains the pid, go search for X11-window-id
+ string(REGEX REPLACE " .*" "" _wr ${_w})
+ set(LYX_WINDOW_NAME ${_wr})
+ message(STATUS "Set LYX_WINDOW_NAME to ${_wr}")
endif()
endforeach()
-endforeach()
-if(ERRORS)
- foreach(m ${ERRORS})
- message(STATUS ${m})
- endforeach()
- message(FATAL_ERROR "Export failed")
+else()
+ set(pidres "")
+ set(LYX_WINDOW_NAME "")
endif()
set(ENV{PACKAGE} ${PACKAGE})
set(ENV{LOCALE_DIR} ${LOCALE_DIR})
set(ENV{LYX_LOCALEDIR} "${WORKDIR}/../locale")
-set(ENV{LYX_USERDIR} ${LYX_USERDIR})
+set(ENV{LYX_USERDIR} ${WORKDIR})
set(ENV{LYX_PID} ${pidres})
set(ENV{LYX_WINDOW_NAME} ${LYX_WINDOW_NAME})
set(ENV{LYX_EXE} ${LYX_EXE})
set(ENV{KEYTEST_INFILE} "${AUTOTEST_ROOT}/${KEYTEST_INFILE}")
set(ENV{KEYTEST_OUTFILE} "${WORKDIR}/${KEYTEST_OUTFILE}")
set(ENV{PO_BUILD_DIR} "${PO_BUILD_DIR}")
-set(ENV{MAX_DROP} 1)
+set(ENV{MAX_DROP} 0)
+set(ENV{MAX_LOOP} 1)
file(GLOB _testfiles RELATIVE "${WORKDIR}" "test*.*" "#test*.*")
if(_testfiles)
# remove some leftover files from previous test