File: single-test.cmake

package info (click to toggle)
lyx 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 138,444 kB
  • sloc: cpp: 244,268; ansic: 106,398; xml: 72,791; python: 39,384; sh: 7,666; makefile: 6,584; pascal: 2,143; perl: 2,101; objc: 1,084; tcl: 163; sed: 16
file content (109 lines) | stat: -rwxr-xr-x 3,765 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# 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
# LYX_USERDIR_VER = ${LYX_USERDIR_VER}
# LOCALE_DIR      = ${BUILD_DIR}/autotests/locale
# PO_BUILD_DIR    = ${BUILD_DIR}/po
# PACKAGE         = lyx2.1
#
# Script should be called like:
# cmake -DAUTOTEST_ROOT=xxxx \
#       -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR}
#       -DKEYTEST_INFILE=xxxx \
#       -DKEYTEST_OUTFILE=xxx \
#       -DBINDIR=xxx \
#       -DLYX=xxx \
#       -DWORKDIR=xxx \
#       -DLYX_USERDIR_VER=${LYX_USERDIR_VER} \
#       -DLOCALE_DIR=xxx \
#       -DPO_BUILD_DIR=xxx \
#       -DPACKAGE=xxx \
#       -DFRONTEND=Qt? \
#       -P ${AUTOTEST_ROOT}/single-test.cmake

set(KEYTEST "${AUTOTEST_ROOT}/keytest.py")

if(0)
  # This thread works, but the sollution in keytest.py is faster
  #-------------------------------------------------------------
  # Try to wait some seconds until the previous lyx stopped
  # but not more than 30 seconds
  message(STATUS "Wait for maximal 30 seconds until the previous lyx finishes")
  set(lcount 0)
  set(pidstat 1)
  while (NOT lcount GREATER 30)
    MATH(EXPR lcount "${lcount} + 1")
    execute_process(COMMAND pidof ${LYX} OUTPUT_VARIABLE LYX_PID RESULT_VARIABLE pidstat OUTPUT_VARIABLE pidres)
    if (pidstat)
      break()
    endif()
    execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
  endwhile()

  if (lcount GREATER 1)
    # We had to wait for some seconds
    message(STATUS "There was still some lyx in way(${lcount})")
  endif()
  if (NOT pidstat)
    # lyx still running, remove trailing '\n' from pid
    string(REGEX REPLACE "\n" "" pidres ${pidres})
    message(FATAL_ERROR "Old lyx with pid ${pidres} still running")
  endif()
endif()

#check for plausible DISPLAY environment (needed bei keytests)
set(DISPLAY_VAR $ENV{DISPLAY})
if(NOT DISPLAY_VAR MATCHES "^[a-zA-Z\\.]*:[0-9]+\(\\.[0-9]+\)?$")
  message(FATAL_ERROR "Invalid DISPLAY environment value (== '${DISPLAY_VAR}')")
endif()

set(LYX_EXE "${BINDIR}/${LYX}")

set(ENV{QT_FRONTEND} ${FRONTEND})

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{EXTRA_PATH} "${AUTOTEST_ROOT}")
set(ENV{PACKAGE} ${PACKAGE})
set(ENV{LOCALE_DIR} ${LOCALE_DIR})
set(ENV{LYX_LOCALEDIR} "${LOCALE_DIR}")
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})
set(ENV{LYX} ${LYX})
set(ENV{XVKBD_EXE} ${XVKBD_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} 0)
set(ENV{MAX_LOOPS} 1)
string(REGEX REPLACE "-in\\.(txt|sh)$" "" _jj ${KEYTEST_INFILE})
if(EXISTS "${WORKDIR}/../${_jj}.lyx.emergency")
  execute_process(
  COMMAND ${CMAKE_COMMAND} -E remove -f "${WORKDIR}/../${_jj}.lyx.emergency" )
endif()
file(GLOB _testfiles RELATIVE "${WORKDIR}" "test*.*" "#test*.*")
if(_testfiles)
  # remove some leftover files from previous test
  execute_process(
  COMMAND ${CMAKE_COMMAND} -E remove -f ${_testfiles} )
endif()
if(EXISTS "${AUTOTEST_ROOT}/${_jj}.lyx")
  configure_file("${AUTOTEST_ROOT}/${_jj}.lyx" "${WORKDIR}/../${_jj}.lyx" COPYONLY)
endif()

execute_process(
  COMMAND python ${KEYTEST}
  RESULT_VARIABLE KEYTEST_RES)
if(KEYTEST_RES)
  message(FATAL_ERROR "KEYTEST failed: KEYTEST_RES=${KEYTEST_RES}")
endif()