From 788e2b1ac8ae98c47a6551ecd70d6bfe0491294d Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Sun, 25 Aug 2013 11:41:10 +0200 Subject: [PATCH] Cmake build tests: Unify use of userdir While some test runns lyx-exe, we need userdir be different from default. All relevant tests should use the same directory. --- CMakeLists.txt | 5 +++- development/autotests/CMakeLists.txt | 9 ++++--- development/autotests/check_load.cmake | 5 ++-- development/autotests/export.cmake | 5 ++-- development/autotests/lyx2lyxtest.cmake | 1 + development/autotests/single-test.cmake | 7 ++--- src/tex2lyx/test/runtests.cmake | 34 +++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/tex2lyx/test/runtests.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d0fa522e89..0d4b6dd48b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ set(CMAKE_MODULE_PATH "${TOP_MODULE_PATH}") set(CMAKE_PROJECT_NAME ${LYX_PROJECT}) message(STATUS) -if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) +if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(STATUS "Building in-source") set(TOP_BINARY_DIR "${CMAKE_BINARY_DIR}/build") else() @@ -31,6 +31,9 @@ else() set(TOP_BINARY_DIR "${CMAKE_BINARY_DIR}") endif() +# This directory should be used if some test uses lyx-executable +set(LYX_TESTS_USERDIR "${TOP_BINARY_DIR}/Testing/.lyx") +file(MAKE_DIRECTORY "${LYX_TESTS_USERDIR}") if(COMMAND cmake_policy) cmake_policy(SET CMP0003 OLD) diff --git a/development/autotests/CMakeLists.txt b/development/autotests/CMakeLists.txt index ffd9ebea45..3c522f842f 100644 --- a/development/autotests/CMakeLists.txt +++ b/development/autotests/CMakeLists.txt @@ -5,9 +5,8 @@ # set(LYX_HOME "out-home") -set(LYX_USERDIR "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}/.lyx") set(LOCALE_DIR "${CMAKE_CURRENT_BINARY_DIR}/locale") -file(MAKE_DIRECTORY "${LYX_USERDIR}" "${LOCALE_DIR}") +file(MAKE_DIRECTORY "${LOCALE_DIR}") if(Q_WS_X11) set(Missing) @@ -78,13 +77,13 @@ if(Q_WS_X11) file(GLOB TESTSS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*-in.sh") list(REMOVE_ITEM TESTST hello-world-in.txt first-time-in.txt) list(SORT TESTST) - file(MAKE_DIRECTORY "${LYX_USERDIR}" "${LOCALE_DIR}") foreach(_tf first-time-in.txt hello-world-in.txt ${TESTST}) string(REGEX REPLACE "-in\\.(txt|sh)" "" _t ${_tf}) 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} @@ -173,6 +172,7 @@ foreach(libsubfolder doc examples templates) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} -Dlyx=$ -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} -DLYX_USERDIR_VER=${LYX_USERDIR_VER} @@ -188,6 +188,7 @@ foreach(libsubfolder doc examples templates) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" COMMAND ${CMAKE_COMMAND} -DLYX2LYX=${TOP_SRC_DIR}/lib/lyx2lyx/lyx2lyx + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} -DLYXFILE=${LIBSUB_SRC_DIR}/${f}.lyx -P "${TOP_SRC_DIR}/development/autotests/lyx2lyxtest.cmake") endif() @@ -197,6 +198,7 @@ foreach(libsubfolder doc examples templates) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" COMMAND ${CMAKE_COMMAND} -DLYXFILE=${LIBSUB_SRC_DIR}/${f}.lyx + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} -Dlyx=$ -DPARAMS_DIR=${TOP_SRC_DIR}/development/autotests -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} @@ -212,6 +214,7 @@ foreach(libsubfolder doc examples templates) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} -Dlyx=$ -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} -Dformat=${format} diff --git a/development/autotests/check_load.cmake b/development/autotests/check_load.cmake index 99f8df9994..5311a80df1 100644 --- a/development/autotests/check_load.cmake +++ b/development/autotests/check_load.cmake @@ -10,6 +10,7 @@ # # Script should be called like: # cmake -DWORKDIR=${BUILD_DIR}/autotests/out-home \ +# -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} \ # -DLYXFILE=xxx \ # -DLYX_USERDIR_VER=${LYX_USERDIR_VER} \ # -DPARAMS_DIR="${TOP_SRC_DIR}/development/autotests" \ @@ -17,11 +18,11 @@ # message(STATUS "Executing ${lyx} -batch ${LYXFILE}") -set(ENV{${LYX_USERDIR_VER}} "${WORKDIR}/.lyx") +set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}") set(ENV{LANG} "en") # to get all error-messages in english execute_process( - COMMAND ${lyx} -batch -userdir ${WORKDIR}/.lyx ${LYXFILE} + COMMAND ${lyx} -batch -userdir "${LYX_TESTS_USERDIR}" ${LYXFILE} RESULT_VARIABLE _err ERROR_VARIABLE lyxerr) diff --git a/development/autotests/export.cmake b/development/autotests/export.cmake index 84f324603c..e5867502dc 100755 --- a/development/autotests/export.cmake +++ b/development/autotests/export.cmake @@ -13,6 +13,7 @@ # # Script should be called like: # cmake -DLYX_ROOT=xxx \ +# -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} \ # -DWORKDIR=${BUILD_DIR}/autotests/out-home \ # -DLYX_USERDIR_VER=${LYX_USERDIR_VER} \ # -Dlyx=xxx \ @@ -24,10 +25,10 @@ # message(STATUS "Executing ${lyx} -userdir \"${WORKDIR}/.lyx\" -E ${format} ${file}.${extension} \"${LYX_ROOT}/${file}.lyx\"") -set(ENV{${LYX_USERDIR_VER}} "${WORKDIR}/.lyx") +set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}") execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${file}.${extension}) execute_process( - COMMAND ${lyx} -userdir "${WORKDIR}/.lyx" -E ${format} ${file}.${extension} "${LYX_ROOT}/${file}.lyx" + COMMAND ${lyx} -userdir "${LYX_TESTS_USERDIR}" -E ${format} ${file}.${extension} "${LYX_ROOT}/${file}.lyx" RESULT_VARIABLE _err) if(reverted) string(COMPARE EQUAL ${_err} 0 _erg) diff --git a/development/autotests/lyx2lyxtest.cmake b/development/autotests/lyx2lyxtest.cmake index b6998de661..d5007ea5ff 100755 --- a/development/autotests/lyx2lyxtest.cmake +++ b/development/autotests/lyx2lyxtest.cmake @@ -9,6 +9,7 @@ # # Script should be called like: # cmake -DLYX2LYX=xxx \ +# -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} \ # -DWORKDIR=${BUILD_DIR}/autotests/out-home \ # -DLYXFILE=xxx \ # -P "${TOP_SRC_DIR}/development/autotests/lyx2lyxtest.cmake" diff --git a/development/autotests/single-test.cmake b/development/autotests/single-test.cmake index ecb8fbbcc9..0758e7fc56 100755 --- a/development/autotests/single-test.cmake +++ b/development/autotests/single-test.cmake @@ -13,6 +13,7 @@ # # Script should be called like: # cmake -DAUTOTEST_ROOT=xxxx \ +# -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} # -DKEYTEST_INFILE=xxxx \ # -DKEYTEST_OUTFILE=xxx \ # -DBINDIR=xxx \ @@ -68,14 +69,14 @@ else() set(XVKBD_EXE "/usr/bin/xvkbd") endif() -if(EXISTS "${WORKDIR}/.lyx/session") - execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f "${WORKDIR}/.lyx/session") +if(EXISTS "${LYX_TESTS_USERDIR}/session") + execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f "${LYX_TESTS_USERDIR}/session") endif() # Environments needed by keytest.py set(ENV{PACKAGE} ${PACKAGE}) set(ENV{LOCALE_DIR} ${LOCALE_DIR}) set(ENV{LYX_LOCALEDIR} "${WORKDIR}/../locale") -set(ENV{${LYX_USERDIR_VER}} "${WORKDIR}/.lyx") +set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}") set(ENV{LYX_PID} ${pidres}) set(ENV{LYX_WINDOW_NAME} ${LYX_WINDOW_NAME}) set(ENV{LYX_EXE} ${LYX_EXE}) diff --git a/src/tex2lyx/test/runtests.cmake b/src/tex2lyx/test/runtests.cmake new file mode 100644 index 0000000000..ef35602e45 --- /dev/null +++ b/src/tex2lyx/test/runtests.cmake @@ -0,0 +1,34 @@ +# This file is part of LyX, the document processor. +# Licence details can be found in the file COPYING. +# +# Copyright (c) 2013 Kornel Benko kornel@lyx.org +# +# +# -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} \ +# -DLYX_USERDIR_VER=${LYX_USERDIR_VER} \ +# -DLYX_PYTHON_EXECUTABLE=${LYX_PYTHON_EXECUTABLE} \ +# -DPY_SCRIPT=${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py \ +# -DFIRST_PARAM= +# -DTEX2LYX_EXE=$ \ +# -DSCRIPT_DIR=${TOP_SRC_DIR}/lib/scripts \ +# -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR} \ +# -DTESTFILE=${fl} \ +# -P ${TOP_SRC_DIR}/src/tex2lyx/test/runtests.cmake + +set(ENV{${LYX_USERDIR_VER}} ${LYX_TESTS_USERDIR}) +message(STATUS "SCRIPT_DIR = ${SCRIPT_DIR}") + +execute_process(COMMAND ${LYX_PYTHON_EXECUTABLE} ${PY_SCRIPT} ${FIRST_PARAM} + ${TEX2LYX_EXE} ${SCRIPT_DIR} ${WORKDIR} ${TESTFILE} + RESULT_VARIABLE _err + OUTPUT_VARIABLE _out) + +message(STATUS ${_out}) +message(STATUS "Error output of ${PY_SCRIPT} = ${_err}") +string(COMPARE NOTEQUAL ${_err} 0 _erg) + +if(_erg) + message(FATAL_ERROR "${PY_SCRIPT} failed") +endif() + +