From aca303135257f979ba09c9ab70147d4b51cef230 Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Sat, 9 Jun 2018 09:08:42 +0200 Subject: [PATCH] Cmake tests: Added check to inspect created pdf in test "AMS-import" If the command "comparepdf" is found, it will be used. Also the script lyx_batch.pl is now easier to expand for possible new comparision tools. --- development/batchtests/ams-import.pdf | Bin 0 -> 60406 bytes development/batchtests/ams-import.tex | 26 ++++++ lib/scripts/CMakeLists.txt | 7 ++ lib/scripts/lyx_batch.pl.in | 121 ++++++++++++++++++-------- 4 files changed, 120 insertions(+), 34 deletions(-) create mode 100644 development/batchtests/ams-import.pdf create mode 100644 development/batchtests/ams-import.tex diff --git a/development/batchtests/ams-import.pdf b/development/batchtests/ams-import.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c16b8670b33eed6f1dc5be0d80b891f954e79cb7 GIT binary patch literal 60406 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 works +\newtheorem{cor}[thm]{\protect\corollaryname} + +\begin{document} +\section{Introduction} + +We assume + +\begin{thm} +For every $\epsilon>0$, there is a constant $\delta>0$ so that if +\end{thm} + +\begin{cor} +For every $\epsilon>0$, there is a constant $\delta>0$ so that if +\end{cor} + +\begin{thm} +There exists a positive constant $C_2$ so that +\end{thm} + +\end{document} + diff --git a/lib/scripts/CMakeLists.txt b/lib/scripts/CMakeLists.txt index 6324191d34..42764dd456 100644 --- a/lib/scripts/CMakeLists.txt +++ b/lib/scripts/CMakeLists.txt @@ -10,6 +10,13 @@ if (UNIX) # include(../PyCompile) endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/prefTest.pl.in" "${CMAKE_BINARY_DIR}/prefTest.pl" @ONLY) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/checkKeys.pl.in" "${CMAKE_BINARY_DIR}/checkKeys.pl" @ONLY) +find_program(COMPAREPDF_EXECUTABLE comparepdf) +if (COMPAREPDF_EXECUTABLE MATCHES "-NOTFOUND") + message(STATUS "comparepdf (= \"${COMPAREPDF_EXECUTABLE}\") not found ==> no pdf comparision in test AMS-import") +else() + message(STATUS "found COMPAREPDF_EXECUTABLE = ${COMPAREPDF_EXECUTABLE}") +endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lyx_batch.pl.in" "${CMAKE_BINARY_DIR}/lyx_batch.pl" @ONLY) diff --git a/lib/scripts/lyx_batch.pl.in b/lib/scripts/lyx_batch.pl.in index 7508a13ed9..eb7ed12598 100644 --- a/lib/scripts/lyx_batch.pl.in +++ b/lib/scripts/lyx_batch.pl.in @@ -8,9 +8,10 @@ use warnings; use File::Copy; use File::Compare; -sub check_precondition(); +sub checkPrecondition(); sub system1(@); -sub add_files($$); +sub addFiles($$$); +sub mycompare($$$); my $builddir = "@CMAKE_BINARY_DIR@"; my $userdir = "$builddir/Testing/.lyxbatch"; @@ -23,19 +24,20 @@ my $qt_version = "@LYX_USE_QT@"; my $lyxsource = "@LYX_ABS_TOP_SRCDIR@"; my $data = "$lyxsource/development/batchtests"; +my $comparepdf = "@COMPAREPDF_EXECUTABLE@"; # src_files := Files to be copied from lyx-source to build-dir -# create := Files which are expected to be created in the build-dir -# original := Files in the lyx-source, corresponding to the created ones, -# which we provide for comparison -# commands := List of commands (lyx-functions) to be executed by lyx in a batch +# check := List of tripples +# created file (in build-dir) +# expected file (in source dir, to be compared with the created one) +# eventually system command to compare files +# commands := List of commands (lyx-functions) to be executed by lyx in a batch # precondition: system commands to be executed prior to the test # command_line: List of parameters to be used on the lyx-command-line my %Tests = ( beamer_test => { src_files => ["beamer_test.lyx"], - create => ["beamer_test.tex"], - original => ["beamer_test.tex.orig"], + check => [["beamer_test.tex", "beamer_test.tex.orig"]], commands => ["file-open beamer_test.lyx", "buffer-begin", "repeat 150 outline-down", @@ -50,14 +52,13 @@ my %Tests = ( workdir => "$data", }, src_files => ["vcs_info_export.lyx"], - create => ["vcs_info_export.tex"], - original => ["vcs_info_export.tex.orig"], + check => [["vcs_info_export.tex", "vcs_info_export.tex.orig"]], command_line => ["-E", "pdflatex", "vcs_info_export.tex", "$data/vcs_info_export.lyx"], }, "ams-import" => { src_files => ["ams-import.tex"], - create => ["ams-import.pdf", "ams-import.lyx"], - original => [undef, undef], + check => [["ams-import.pdf", "ams-import.pdf", $comparepdf], + ["ams-import.lyx"]], commands => ["buffer-new", "buffer-import latex ams-import.tex", "buffer-write", @@ -73,9 +74,11 @@ die("Invalid argument") if (! defined($Tests{$test})); if (! -e $userdir) { mkdir($userdir); } -my @expected = &add_files($data, $Tests{$test}->{original}); +my @expected = &addFiles($data, $Tests{$test}->{check},1); -my @created = &add_files($workdir, $Tests{$test}->{create}); +my @created = &addFiles($workdir, $Tests{$test}->{check}, 0); + +my @comparecommand = &addFiles(undef, $Tests{$test}->{check}, 2); # Copy src-files to work with for my $f (@{$Tests{$test}->{src_files}}) { @@ -88,31 +91,35 @@ $ENV{LANG} = "en"; $ENV{LC_ALL} = "C"; $ENV{LANGUAGE} = "en_US"; -check_precondition(); +&checkPrecondition(); chdir($workdir); my @command = ($lyx_exe, "-userdir", $userdir); if (defined($Tests{$test}->{command_line})) { push(@command, @{$Tests{$test}->{command_line}}); } -if (defined($Tests{$test}->{commands})) { +if (defined($Tests{$test}->{commands}->[0])) { if ($qt_version eq "QT5") { push(@command, "-platform", "offscreen"); } - push(@command, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}})); + if (defined($Tests{$test}->{commands}->[1])) { # more than one command + push(@command, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}})); + } + else { + push(@command, "-x", $Tests{$test}->{commands}->[0]); + } } -system1(@command); -for my $f (@created) { - die("File \"$f\" not created") if (! -e "$f"); -} +&system1(@command); + for (my $i = 0; defined($created[$i]); $i++) { - if (defined($expected[$i])) { - die("Expected ($expected[$i]) and created ($created[$i]) files differ") if (compare($expected[$i], $created[$i]) != 0); + die("File \"$created[$i]\" not created") if (! -e "$created[$i]"); +if (defined($expected[$i])) { + die("Expected ($expected[$i]) and created ($created[$i]) files differ") if (&mycompare($comparecommand[$i], $expected[$i], $created[$i]) != 0); } } exit(0); -sub check_precondition() +sub checkPrecondition() { return if (! defined($Tests{$test}->{precondition})); my $rPrecond = $Tests{$test}->{precondition}; @@ -120,7 +127,7 @@ sub check_precondition() if (defined($rPrecond->{workdir})) { chdir($rPrecond->{workdir}); } - my $result = system1(@command); + my $result = &system1(@command); print "Pre-condition result = $result\n"; die("Pre-condition error") if ($result != 0); } @@ -129,23 +136,69 @@ sub system1(@) { my ($exe, @params) = @_; print "Executing:\n\t$exe '" . join("' '", @params) . "'\n"; - system($exe, @params); + return(system($exe, @params)); } # Create a list of file paths # dir: result-dir # rBases: List of base-names -sub add_files($$) +sub addFiles($$$) { - my ($dir, $rBases) = @_; + my ($tdir, $rrBases, $idx) = @_; + my $dir; + if (defined($tdir)) { + $dir = "$tdir/"; + } + else { + $dir = ""; + } my @result = (); - for my $f (@{$rBases}) { - if (defined($f)) { - push(@result, "$dir/$f"); - } - else { - push(@result, undef); + for my $rf (@{$rrBases}) { + my $path = undef; + if (defined($rf) && defined($rf->[$idx])) { + $path = "$dir$rf->[$idx]"; } + push(@result, $path); } return(@result); } + +sub mycompare($$$) +{ + my ($cmd, $expected, $created) = @_; + my $result; + if (defined($cmd)) { # system command desired + my @params = (); + if ($cmd =~ /NOTFOUND/) { + # no check is done due to missing executable + } + else { + if ($cmd =~ /comparepdf/) { + push(@params, "-ca", "-v=1", $expected, $created); + } + else { + die("unknown system command $cmd"); + } + my $error = ""; + if (&system1($cmd, @params) != 0) { + if ($? == -1) { + $error = sprintf("failed to execute: $cmd"); + } + elsif ($? & 127) { + $error = sprintf("$cmd with signal %d, %s coredump", + ($? & 127), ($? & 128) ? 'with' : 'without'); + } + else { + $error = sprintf("child $cmd exited with value %d", $? >> 8); + } + } + die($error) if ($error ne ""); + } + $result = 0; + } + else { + # defaut text comparision + $result = compare($created, $expected); + } + return($result); +}