aboutsummaryrefslogtreecommitdiff
path: root/util/perl/OpenSSL/Test.pm
diff options
context:
space:
mode:
authorMartin Peylo <martin.peylo@nokia.com>2018-08-22 12:48:22 +0300
committerRichard Levitte <levitte@openssl.org>2019-07-02 20:10:57 +0200
commit7a2027240e1d01f7f5b209998d1de36af221b34b (patch)
tree4b1432bca3f39bb1dd539d97cdebfc3da86b735e /util/perl/OpenSSL/Test.pm
parentbd01733fdd9a5a0acdc72cf5c6601d37e8ddd801 (diff)
downloadopenssl-7a2027240e1d01f7f5b209998d1de36af221b34b.zip
openssl-7a2027240e1d01f7f5b209998d1de36af221b34b.tar.gz
openssl-7a2027240e1d01f7f5b209998d1de36af221b34b.tar.bz2
Adding Test.pm with workaround for Perl abs2rel bug
If SRCTOP != BLDTOP, and SRCTOP is given in relative form, e.g. "./config ../openssl", then a bug in Perl's abs2rel may trigger that directory- rewriting in __cwd results in wrong entries in %directories under certain circumstances, e.g. when a test executes run(app(["openssl"]) after indir. There should not be any need to go to a higher directory from BLDDIR or SRCDIR, so it should be OK to use them in their absolute form, also resolving all possible symlinks, right from the start. Following the File::Spec::Functions bug description (reported to perl.org): When abs2rel gets a path argument with ..s that are crossing over the ..s trailing the base argument, the result is wrong. Example PATH: /home/goal/test/.. BASE: /home/goal/test/../../base Good result: ../goal Bad result: ../.. Bug verified with File::Spec versions - 3.6301 - 3.74 (latest) Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7031)
Diffstat (limited to 'util/perl/OpenSSL/Test.pm')
-rw-r--r--util/perl/OpenSSL/Test.pm5
1 files changed, 3 insertions, 2 deletions
diff --git a/util/perl/OpenSSL/Test.pm b/util/perl/OpenSSL/Test.pm
index ee4c8eb..cf7502b 100644
--- a/util/perl/OpenSSL/Test.pm
+++ b/util/perl/OpenSSL/Test.pm
@@ -66,6 +66,7 @@ use File::Spec::Functions qw/file_name_is_absolute curdir canonpath splitdir
rel2abs/;
use File::Path 2.00 qw/rmtree mkpath/;
use File::Basename;
+use Cwd qw/abs_path/;
my $level = 0;
@@ -932,8 +933,8 @@ i.e. Some tests may only work in non FIPS mode.
sub __env {
(my $recipe_datadir = basename($0)) =~ s/\.t$/_data/i;
- $directories{SRCTOP} = $ENV{SRCTOP} || $ENV{TOP};
- $directories{BLDTOP} = $ENV{BLDTOP} || $ENV{TOP};
+ $directories{SRCTOP} = abs_path($ENV{SRCTOP} || $ENV{TOP});
+ $directories{BLDTOP} = abs_path($ENV{BLDTOP} || $ENV{TOP});
$directories{BLDAPPS} = $ENV{BIN_D} || __bldtop_dir("apps");
$directories{SRCAPPS} = __srctop_dir("apps");
$directories{BLDFUZZ} = __bldtop_dir("fuzz");