diff options
author | Dmitry Belyavskiy <beldmit@users.noreply.github.com> | 2019-08-24 18:00:40 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-24 18:00:40 +0300 |
commit | 2e5995f5f69963fb37186378ec01ccb31f0f5000 (patch) | |
tree | 7c3d1c589a0dcc7e938de221c893eb0ab2a1e28e /test | |
parent | 53a09efd9d9356496c714914ffa8da8812e0dd45 (diff) | |
parent | 0fe110a402e8ebb88e1daaa81d382606f68a3642 (diff) | |
download | gost-engine-2e5995f5f69963fb37186378ec01ccb31f0f5000.zip gost-engine-2e5995f5f69963fb37186378ec01ccb31f0f5000.tar.gz gost-engine-2e5995f5f69963fb37186378ec01ccb31f0f5000.tar.bz2 |
Merge pull request #160 from levitte/fix-146
test/run_tests: Always set paths when OPENSSL_ROOT_DIR is defined
Diffstat (limited to 'test')
-rw-r--r-- | test/run_tests | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/test/run_tests b/test/run_tests index 3dfa90c..a6709fd 100644 --- a/test/run_tests +++ b/test/run_tests @@ -1,9 +1,37 @@ #!/usr/bin/perl use TAP::Harness; -if(defined $ENV{'OPENSSL_ROOT_DIR'} && !defined $ENV{'LD_LIBRARY_PATH'}) { - $ENV{'LD_LIBRARY_PATH'} = $ENV{'OPENSSL_ROOT_DIR'}; - $ENV{'PATH'} = "$ENV{'OPENSSL_ROOT_DIR'}/apps:$ENV{'PATH'}"; +if(defined $ENV{'OPENSSL_ROOT_DIR'}) { + my $openssl_libdir; + my $openssl_bindir; + + if (-d "$ENV{'OPENSSL_ROOT_DIR'}/apps") { + # The OpenSSL root dir is an OpenSSL build tree + $openssl_bindir = "$ENV{'OPENSSL_ROOT_DIR'}/apps"; + $openssl_libdir = "$ENV{'OPENSSL_ROOT_DIR'}"; + } else { + # The OpenSSL root dir is an OpenSSL installation tree + # Since we're not exactly sure what the library path is (because + # multilib), we ask pkg-config + local $ENV{PKG_CONFIG_PATH} = "$ENV{'OPENSSL_ROOT_DIR'}/lib/pkgconfig"; + my $pkgans = `pkg-config --libs-only-L openssl`; + + # If pkg-config failed for any reason, abort. The tests will most + # likely fail anyway because the binary path won't have a matching + # library path. + die "pkg-config failure: $! (exit code ", $? >> 8, ", signal ", $? & 0xff, ")" + if ($? != 0); + + $pkgans =~ s|\R$||; # Better chomp + $pkgans =~ s|^-L||; # Remove flag from answer + + $openssl_libdir = $pkgans; + $openssl_bindir = "$ENV{'OPENSSL_ROOT_DIR'}/bin"; + } + $ENV{'LD_LIBRARY_PATH'} = + join(':', $openssl_libdir, split(/:/, $ENV{'LD_LIBRARY_PATH'})); + $ENV{'PATH'} = + join(':', $openssl_bindir, split(/:/, $ENV{'PATH'})); } my $harness = TAP::Harness->new(); exit ($harness->runtests(glob("*.t"))->all_passed() ? 0 : 1); |