lyx_mirror/lib/scripts/prefTest.pl.in

89 lines
2.2 KiB
Perl
Raw Normal View History

#! /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);