From c2a5a16d97f4d1a1a9a2f7f5a70efc5639845525 Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Mon, 1 Jan 2018 14:03:51 +0100 Subject: [PATCH] Added new testcase to check for correct VCS-Info --- .../checklatexexports/vcs_info_export.tex | 22 ++++++++ development/autotests/CMakeLists.txt | 1 + development/autotests/VcsTest.cmake | 54 +++++++++++++++++++ development/autotests/VcsTests.cmake | 43 +++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 autotests/checklatexexports/vcs_info_export.tex create mode 100755 development/autotests/VcsTest.cmake create mode 100644 development/autotests/VcsTests.cmake diff --git a/autotests/checklatexexports/vcs_info_export.tex b/autotests/checklatexexports/vcs_info_export.tex new file mode 100644 index 0000000000..67b013fb68 --- /dev/null +++ b/autotests/checklatexexports/vcs_info_export.tex @@ -0,0 +1,22 @@ +%% LyX 2.4.0dev created this file. For more info, see https://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english]{article} +\usepackage{mathpazo} +\usepackage[scaled=0.95]{helvet} +\usepackage{courier} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{babel} +\begin{document} +file: vcs\_info\_export.lyx + +commit: 9c6a95b22a4d9c2b0eff5907405279dba885704f + +class: article + +author: Kornel Benko + +date: 2018-01-01 + +time: 12:16:09 +0100 +\end{document} diff --git a/development/autotests/CMakeLists.txt b/development/autotests/CMakeLists.txt index 208e74be1a..55df0227a6 100644 --- a/development/autotests/CMakeLists.txt +++ b/development/autotests/CMakeLists.txt @@ -124,3 +124,4 @@ endif() if (LYX_ENABLE_EXPORT_TESTS) include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake) endif() +include(${TOP_SRC_DIR}/development/autotests/VcsTests.cmake) diff --git a/development/autotests/VcsTest.cmake b/development/autotests/VcsTest.cmake new file mode 100755 index 0000000000..298fc84260 --- /dev/null +++ b/development/autotests/VcsTest.cmake @@ -0,0 +1,54 @@ +# This file is part of LyX, the document processor. +# Licence details can be found in the file COPYING. +# +# Copyright (c) 2018 Kornel Benko kornel@lyx.org +# +# +# LYX_ROOT = ${TOP_SRC_DIR}/lib/{doc,examples,templates} +# file = xxx +# +set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}") +set(ENV{LANG} "en_US.UTF-8") # to get all error-messages in english + +set(result_file_name ${file}.tex) +set(check_file_name "${LYX_ROOT}/${file}.tex") + +message(STATUS "Check for ${LYX_GITVERSION}") +if(LYX_GITVERSION) + execute_process( + WORKING_DIRECTORY "${LYX_ROOT}" + COMMAND git status ${file}.lyx + RESULT_VARIABLE _err + ERROR_VARIABLE lyxerr) + if (_err) + message(STATUS "Not a git controlled file") + else() + message(STATUS "Executing ${lyx} -E ${ExportFormat} ${result_file_name} \"${LYX_ROOT}/${file}.lyx\"") + execute_process( + COMMAND ${lyx} -E ${ExportFormat} ${result_file_name} "${LYX_ROOT}/${file}.lyx" + RESULT_VARIABLE _err + ERROR_VARIABLE lyxerr) + if(NOT _err) + if(NOT EXISTS "${result_file_name}") + message(STATUS "Expected result file \"${result_file_name}\" does not exist") + set(_err -1) + else() + message(STATUS "Expected result file \"${result_file_name}\" exists") + endif() + # Check if result file identical to check file + execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files + "${result_file_name}" "${LYX_ROOT}/${file}.tex" + RESULT_VARIABLE _err + ERROR_VARIABLE lyxerr) + if (NOT _err) + message(STATUS "Compare successful") + endif() + endif() + + string(COMPARE NOTEQUAL ${_err} 0 _erg) + if(_erg) + message(STATUS "Exporting ${file}.lyx to ${ExportFormat}") + message(FATAL_ERROR "Export failed") + endif() + endif() +endif() diff --git a/development/autotests/VcsTests.cmake b/development/autotests/VcsTests.cmake new file mode 100644 index 0000000000..83b572b3d6 --- /dev/null +++ b/development/autotests/VcsTests.cmake @@ -0,0 +1,43 @@ +# +# Copyright (c) 2018 Kornel Benko +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +set(outputformat pdflatex) +set(checkdir "${TOP_SRC_DIR}/autotests/checklatexexports") +set(checkfiles vcs_info_export) + +foreach(_f ${checkfiles}) + add_test(NAME VcsInfo.${_f} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" + COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${checkdir} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} + -Dlyx=$ + -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} + -DLYX_GITVERSION=${LYX_GITVERSION} + -DExportFormat=${outputformat} + -Dfile=${_f} + -P "${TOP_SRC_DIR}/development/autotests/VcsTest.cmake") +endforeach()