Cmake keytests: Don't care for lyx still not finished.

The called script keytest.py already takes care of that.
This commit is contained in:
Kornel Benko 2017-05-07 13:49:10 +02:00
parent 948020d9a3
commit 48ecf06d9b

View File

@ -28,25 +28,32 @@
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}")
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()
endforeach()
else()
set(pidres "")
set(LYX_WINDOW_NAME "")
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)