]> git.lyx.org Git - lyx.git/blob - development/autotests/VcsTest.cmake
ctests: allow excluding patterns
[lyx.git] / development / autotests / VcsTest.cmake
1 # This file is part of LyX, the document processor.
2 # Licence details can be found in the file COPYING.
3 #
4 # Copyright (c) 2018 Kornel Benko kornel@lyx.org
5 #
6 #
7 # LYX_ROOT  = ${TOP_SRC_DIR}/lib/{doc,examples,templates}
8 # file      = xxx
9 #
10 set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}")
11 set(ENV{LANG} "en_US.UTF-8") # to get all error-messages in english
12
13 set(result_file_name ${file}.tex)
14 set(check_file_name "${LYX_ROOT}/${file}.tex")
15
16 message(STATUS "Check for ${LYX_GITVERSION}")
17 if(LYX_GITVERSION)
18   execute_process(
19     WORKING_DIRECTORY "${LYX_ROOT}"
20     COMMAND git status ${file}.lyx
21     RESULT_VARIABLE _err
22     ERROR_VARIABLE lyxerr)
23   if (_err)
24     message(STATUS "Not a git controlled file")
25   else()
26     message(STATUS "Executing ${lyx} -E ${ExportFormat} ${result_file_name} \"${LYX_ROOT}/${file}.lyx\"")
27     execute_process(
28       COMMAND ${lyx} -E ${ExportFormat} ${result_file_name} "${LYX_ROOT}/${file}.lyx"
29       RESULT_VARIABLE _err
30       ERROR_VARIABLE lyxerr)
31       if(NOT _err)
32         if(NOT EXISTS "${result_file_name}")
33           message(STATUS "Expected result file \"${result_file_name}\" does not exist")
34           set(_err -1)
35         else()
36           message(STATUS "Expected result file \"${result_file_name}\" exists")
37         endif()
38         # Check if result file identical to check file
39         execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files
40           "${result_file_name}" "${LYX_ROOT}/${file}.tex"
41           RESULT_VARIABLE _err
42           ERROR_VARIABLE lyxerr)
43         if (NOT _err)
44           message(STATUS "Compare successful")
45         endif()
46       endif()
47
48     string(COMPARE NOTEQUAL  ${_err} 0 _erg)
49     if(_erg)
50       message(STATUS "Exporting ${file}.lyx to ${ExportFormat}")
51       message(FATAL_ERROR "Export failed")
52     endif()
53   endif()
54 endif()