mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-28 12:26:59 +00:00
vcs_info_export moved to new directory, part 2
This commit is contained in:
parent
1e09b48bb5
commit
26eeaa1af2
@ -124,4 +124,3 @@ endif()
|
|||||||
if (LYX_ENABLE_EXPORT_TESTS)
|
if (LYX_ENABLE_EXPORT_TESTS)
|
||||||
include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake)
|
include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake)
|
||||||
endif()
|
endif()
|
||||||
include(${TOP_SRC_DIR}/development/autotests/VcsTests.cmake)
|
|
||||||
|
@ -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()
|
|
@ -1,45 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2018 Kornel Benko <kornel@lyx.org>
|
|
||||||
#
|
|
||||||
# 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=$<TARGET_FILE:${_lyx}>
|
|
||||||
-DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}
|
|
||||||
-DLYX_GITVERSION=${LYX_GITVERSION}
|
|
||||||
-DExportFormat=${outputformat}
|
|
||||||
-Dfile=${_f}
|
|
||||||
-P "${TOP_SRC_DIR}/development/autotests/VcsTest.cmake")
|
|
||||||
endforeach()
|
|
22
development/batchtests/vcs_info_export.tex.orig
Normal file
22
development/batchtests/vcs_info_export.tex.orig
Normal file
@ -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}
|
@ -8,12 +8,16 @@ use warnings;
|
|||||||
use File::Copy;
|
use File::Copy;
|
||||||
use File::Compare;
|
use File::Compare;
|
||||||
|
|
||||||
|
sub check_precondition();
|
||||||
|
sub system1(@);
|
||||||
|
|
||||||
my $builddir = "@CMAKE_BINARY_DIR@";
|
my $builddir = "@CMAKE_BINARY_DIR@";
|
||||||
my $userdir = "$builddir/Testing/.lyx";
|
my $userdir = "$builddir/Testing/.lyx";
|
||||||
my $workdir = "$builddir/autotests/out-home";
|
my $workdir = "$builddir/autotests/out-home";
|
||||||
|
|
||||||
my $vsuffix = "@PROGRAM_SUFFIX@";
|
my $vsuffix = "@PROGRAM_SUFFIX@";
|
||||||
my $lyx_exe = "$builddir/bin/lyx$vsuffix";
|
my $lyx_exe = "$builddir/bin/lyx$vsuffix";
|
||||||
|
my $git_exe = "@LYX_GITVERSION@";
|
||||||
|
|
||||||
my $lyxsource = "@LYX_ABS_TOP_SRCDIR@";
|
my $lyxsource = "@LYX_ABS_TOP_SRCDIR@";
|
||||||
my $data = "$lyxsource/development/batchtests";
|
my $data = "$lyxsource/development/batchtests";
|
||||||
@ -29,12 +33,20 @@ my %Tests = (
|
|||||||
"repeat 150 outline-down",
|
"repeat 150 outline-down",
|
||||||
"buffer-reload dump",
|
"buffer-reload dump",
|
||||||
"lyx-quit"]
|
"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];
|
my $test = $ARGV[0];
|
||||||
exit(2) if (! defined($Tests{$test}));
|
die("Invalid argument") if (! defined($Tests{$test}));
|
||||||
|
|
||||||
my $orig_lyx = "$data/$test.lyx";
|
my $orig_lyx = "$data/$test.lyx";
|
||||||
my $work_lyx = "$workdir/$test.lyx";
|
my $work_lyx = "$workdir/$test.lyx";
|
||||||
@ -49,9 +61,37 @@ $ENV{LANG} = "en";
|
|||||||
$ENV{LC_ALL} = "C";
|
$ENV{LC_ALL} = "C";
|
||||||
$ENV{LANGUAGE} = "en_US";
|
$ENV{LANGUAGE} = "en_US";
|
||||||
|
|
||||||
|
check_precondition();
|
||||||
chdir($workdir);
|
chdir($workdir);
|
||||||
system($lyx_exe, "-userdir", $userdir, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}}));
|
my @command = ($lyx_exe, "-userdir", $userdir);
|
||||||
die("Expected and created files differ") if (compare($expected, $created) != 0);
|
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);
|
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);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user