aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDmitry Belyavskiy <beldmit@users.noreply.github.com>2019-08-24 18:00:40 +0300
committerGitHub <noreply@github.com>2019-08-24 18:00:40 +0300
commit2e5995f5f69963fb37186378ec01ccb31f0f5000 (patch)
tree7c3d1c589a0dcc7e938de221c893eb0ab2a1e28e /test
parent53a09efd9d9356496c714914ffa8da8812e0dd45 (diff)
parent0fe110a402e8ebb88e1daaa81d382606f68a3642 (diff)
downloadgost-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_tests34
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);