lyx_mirror/lib/scripts/prefTest.pl.in
Kornel Benko 4bb00e99fb Cmake export tests: Omit next group of possible conflicts while runnig test in parallel
Disable conversion cache because all lyx instances use the same cache without
any locking between read and write to the cache.

Thanks to Scott catching this case.
2020-08-19 22:28:50 +02:00

89 lines
2.2 KiB
Perl
Executable File

#! /usr/bin/env perl
# -*- mode: perl; -*-
use strict;
use warnings;
# Syntax: prefTest.pl [test|default] [<var1>=<Subst1> [<var2>=<Subst> ...]] [[ctest parameters]]
# If the first parameter is "test"
# allow use of -shell-escape in converters and
# allow use of external programs
# If the first parameter is "default"
# remove "-shell-escape" from converters and
# forbid use of external programs
# Else
# allow use of -shell-escape in converters and
# do not change handling the use of external programs
############################################################
BEGIN {
unshift(@INC, "@CMAKE_CURRENT_SOURCE_DIR@");
}
use prefTest;
my $bindir = "@CMAKE_BINARY_DIR@";
my $userdir = "$bindir/Testing/.lyx";
my %allowedKeys = (
"use_converter_needauth_forbidden" => ["true", "false"],
"use_converter_needauth" => ["true", "false"],
"allow_geometry_session" => ["false"],
"use_converter_cache" => ["true", "false"],
"converter_cache_maxage" => "integer",
);
my %Converter = ();
chdir($bindir);
# Parse Arguments for strings to substitute
my %Subst = ();
my @ctestpars = ();
my $shell_escapes = 1;
my $handle_argv = "";
if (defined($ARGV[0]) && ($ARGV[0] =~ /^(test|default)$/)) {
$handle_argv = $1;
shift(@ARGV);
}
if ($handle_argv eq "test") {
@ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
"allow_geometry_session=false",
"use_converter_needauth_forbidden=false",
"use_converter_needauth=false",
"use_converter_cache=false",
"converter_cache_maxage=" . 180*24*60*60,
@ARGV);
}
elsif ($handle_argv eq "default") {
$shell_escapes = 0;
@ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
"allow_geometry_session=false",
"use_converter_needauth_forbidden=true",
"use_converter_needauth=true",
"use_converter_cache=true",
"converter_cache_maxage=" . 61*24*60*60,
@ARGV);
}
else {
@ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
"allow_geometry_session=false", @ARGV);
}
&getConverters($userdir, \%Converter, $shell_escapes);
&applyChanges($userdir, \%Subst, \%Converter, $shell_escapes);
my $res = 0;
if (@ctestpars) {
$res = system("ctest", @ctestpars);
}
exit($res);