diff --git a/development/autotests/CMakeLists.txt b/development/autotests/CMakeLists.txt index 55df0227a6..208e74be1a 100644 --- a/development/autotests/CMakeLists.txt +++ b/development/autotests/CMakeLists.txt @@ -124,4 +124,3 @@ 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 deleted file mode 100755 index 298fc84260..0000000000 --- a/development/autotests/VcsTest.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# 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 deleted file mode 100644 index f0225c9a74..0000000000 --- a/development/autotests/VcsTests.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# -# 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") -# Checking that info inset correctly fills up VCS information -# see also bug #10835 -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() diff --git a/development/batchtests/vcs_info_export.tex.orig b/development/batchtests/vcs_info_export.tex.orig new file mode 100644 index 0000000000..3eafa63ee9 --- /dev/null +++ b/development/batchtests/vcs_info_export.tex.orig @@ -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: 1e09b48bb5fe648ce88d7182d8c6dc4f8e91b9bd + +class: article + +author: Kornel Benko + +date: 2018-01-17 + +time: 12:09:18 +0100 +\end{document} diff --git a/lib/scripts/lyx_batch.pl.in b/lib/scripts/lyx_batch.pl.in index c75e15d754..22395442b0 100755 --- a/lib/scripts/lyx_batch.pl.in +++ b/lib/scripts/lyx_batch.pl.in @@ -8,12 +8,16 @@ use warnings; use File::Copy; use File::Compare; +sub check_precondition(); +sub system1(@); + my $builddir = "@CMAKE_BINARY_DIR@"; my $userdir = "$builddir/Testing/.lyx"; my $workdir = "$builddir/autotests/out-home"; my $vsuffix = "@PROGRAM_SUFFIX@"; my $lyx_exe = "$builddir/bin/lyx$vsuffix"; +my $git_exe = "@LYX_GITVERSION@"; my $lyxsource = "@LYX_ABS_TOP_SRCDIR@"; my $data = "$lyxsource/development/batchtests"; @@ -29,12 +33,20 @@ my %Tests = ( "repeat 150 outline-down", "buffer-reload dump", "lyx-quit"] + }, + vcs_info_export => { + precondition => { + command => [$git_exe, "ls-files", "--error-unmatch", "vcs_info_export.lyx"], + workdir => "$data", + }, + create => "vcs_info_export.tex", + command_line => ["-E", "pdflatex", "vcs_info_export.tex", "$data/vcs_info_export.lyx"], } ); -exit(1) if (! defined($ARGV[0])); +die("Expected argument missing") if (! defined($ARGV[0])); my $test = $ARGV[0]; -exit(2) if (! defined($Tests{$test})); +die("Invalid argument") if (! defined($Tests{$test})); my $orig_lyx = "$data/$test.lyx"; my $work_lyx = "$workdir/$test.lyx"; @@ -49,9 +61,37 @@ $ENV{LANG} = "en"; $ENV{LC_ALL} = "C"; $ENV{LANGUAGE} = "en_US"; +check_precondition(); chdir($workdir); -system($lyx_exe, "-userdir", $userdir, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}})); -die("Expected and created files differ") if (compare($expected, $created) != 0); +my @command = ($lyx_exe, "-userdir", $userdir); +if (defined($Tests{$test}->{command_line})) { + push(@command, @{$Tests{$test}->{command_line}}); +} +if (defined($Tests{$test}->{commands})) { + push(@command, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}})); +} + +system1(@command); +die("Expected ($expected) and created ($created) files differ") if (compare($expected, $created) != 0); exit(0); +sub check_precondition() +{ + return if (! defined($Tests{$test}->{precondition})); + my $rPrecond = $Tests{$test}->{precondition}; + my @command = @{$rPrecond->{command}}; + if (defined($rPrecond->{workdir})) { + chdir($rPrecond->{workdir}); + } + my $result = system1(@command); + print "Pre-condition result = $result\n"; + die("Pre-condition error") if ($result != 0); +} + +sub system1(@) +{ + my ($exe, @params) = @_; + print "Executing:\n\t$exe '" . join("' '", @params) . "'\n"; + system($exe, @params); +}