Cmake build: Testing

Make this all more the cmake way
This commit is contained in:
Kornel Benko 2012-12-15 00:15:59 +01:00
parent 2f0e57cad4
commit 892e237fe1
4 changed files with 40 additions and 21 deletions

View File

@ -30,7 +30,7 @@ if(Q_WS_X11)
foreach(_tf first-time-in.txt hello-world-in.txt ${TESTST}) foreach(_tf first-time-in.txt hello-world-in.txt ${TESTST})
string(REGEX REPLACE "-in\\.(txt|sh)" "" _t ${_tf}) string(REGEX REPLACE "-in\\.(txt|sh)" "" _t ${_tf})
add_test(NAME "autotests/${_t}" add_test(NAME autotests/${_t}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
-DAUTOTEST_ROOT=${TOP_SRC_DIR}/development/autotests -DAUTOTEST_ROOT=${TOP_SRC_DIR}/development/autotests
@ -50,7 +50,7 @@ file(GLOB lyx_files RELATIVE "${TOP_SRC_DIR}/lib/doc" "${TOP_SRC_DIR}/lib/doc/*.
foreach(f ${lyx_files}) foreach(f ${lyx_files})
# Strip extension # Strip extension
string(REGEX REPLACE "\\.lyx$" "" f ${f}) string(REGEX REPLACE "\\.lyx$" "" f ${f})
add_test(NAME autotests/export_${f}_lyx16 add_test(NAME autotests/export/${f}_lyx16
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc
-Dlyx=$<TARGET_FILE:${_lyx}> -Dlyx=$<TARGET_FILE:${_lyx}>
@ -58,7 +58,7 @@ foreach(f ${lyx_files})
-Dextension=16.lyx -Dextension=16.lyx
-Dfile=${f} -Dfile=${f}
-P "${TOP_SRC_DIR}/development/autotests/export.cmake") -P "${TOP_SRC_DIR}/development/autotests/export.cmake")
add_test(NAME autotests/export_${f}_xhtml add_test(NAME autotests/export/${f}_xhtml
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${TOP_SRC_DIR}/lib/doc
-Dlyx=$<TARGET_FILE:${_lyx}> -Dlyx=$<TARGET_FILE:${_lyx}>

View File

@ -38,14 +38,11 @@ foreach(_src ${check_PROGRAMS})
string(REPLACE "check_" "" _srcx ${_src}) string(REPLACE "check_" "" _srcx ${_src})
set(src_data_file "${TOP_SRC_DIR}/src/support/tests/regfiles/${_srcx}") set(src_data_file "${TOP_SRC_DIR}/src/support/tests/regfiles/${_srcx}")
set(created_data_file "${CMAKE_CURRENT_BINARY_DIR}/regfiles/${_src}_data") set(created_data_file "${CMAKE_CURRENT_BINARY_DIR}/regfiles/${_src}_data")
add_test(NAME support/${_srcx}/build add_test(NAME support/${_srcx}
COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${_src}) COMMAND ${CMAKE_COMMAND} -DCommand=$<TARGET_FILE:${_src}>
add_test(NAME support/${_srcx}/createdata -DInput=${src_data_file}
COMMAND ${_src} > "${created_data_file}") -DOutput=${created_data_file}
add_test(NAME support/${_srcx}/compare -P "${TOP_SRC_DIR}/src/support/tests/supporttest.cmake")
COMMAND ${CMAKE_COMMAND} -E compare_files "${src_data_file}" "${created_data_file}")
set_tests_properties(support/${_srcx}/createdata PROPERTIES DEPENDS support/${_srcx}/build )
set_tests_properties(support/${_srcx}/compare PROPERTIES DEPENDS support/${_srcx}/createdata)
endforeach() endforeach()

View File

@ -0,0 +1,30 @@
# This file is part of LyX, the document processor.
# Licence details can be found in the file COPYING.
#
# Copyright (c) 2012 Kornel Benko kornel@lyx.org
#
#
# Script should be called like:
# cmake -DCommand=xxx \
# -DInput=xxx \
# -DOutput=xxx \
# -P xxxx/supporttest.cmake
#
#
# Command: The executable, whose output is to be examined
# Input: The file name of expected data
# Output: The file name for data catched from output of the executable
execute_process(COMMAND "${Command}"
OUTPUT_FILE "${Output}"
RESULT_VARIABLE _testres)
if(_testres)
message(FATAL_ERROR "${Command} not working")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files "${Input}" "${Output}"
RESULT_VARIABLE _testres)
if(_testres)
message(FATAL_ERROR "Files are not eqal")
endif()

View File

@ -7,26 +7,18 @@
project(test) project(test)
file(GLOB _tex_tests RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*.ltx" "${CMAKE_CURRENT_SOURCE_DIR}/*.tex") file(GLOB _tex_tests RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*.ltx" "${CMAKE_CURRENT_SOURCE_DIR}/*.tex")
#set(_tex_tests test.ltx test-structure test-insets test-modules box-color-size-space-align CJK XeTeX-polyglossia)
list(REMOVE_ITEM _tex_tests DummyDocument.tex) list(REMOVE_ITEM _tex_tests DummyDocument.tex)
add_test(NAME tex2lyx/create_lyx
COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${_lyx})
add_test(NAME tex2lyx/create_tex2lyx
COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${_tex2lyx})
set_tests_properties(tex2lyx/create_tex2lyx PROPERTIES DEPENDS tex2lyx/create_lyx)
foreach(_fl ${_tex_tests}) foreach(_fl ${_tex_tests})
set(fl ${_fl}) set(fl ${_fl})
add_test(NAME tex2lyx/roundtrip/${_fl} add_test(NAME tex2lyx/roundtrip/${_fl}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py" COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_SRC_DIR}/src/tex2lyx/test/runtests.py"
"${TOP_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${_tex2lyx}" "$<TARGET_FILE:${_tex2lyx}>"
"${TOP_SRC_DIR}/lib/scripts" "${TOP_SRC_DIR}/lib/scripts"
"${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
${fl}) ${fl})
set_tests_properties(tex2lyx/roundtrip/${_fl} PROPERTIES DEPENDS tex2lyx/create_tex2lyx)
endforeach() endforeach()