1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/usr/bin/perl
use TAP::Harness;
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";
}
# Variants of library paths
# Linux, ELF HP-UX
$ENV{'LD_LIBRARY_PATH'} =
join(':', $openssl_libdir, split(/:/, $ENV{'LD_LIBRARY_PATH'}));
# MacOS X
$ENV{'DYLD_LIBRARY_PATH'} =
join(':', $openssl_libdir, split(/:/, $ENV{'DYLD_LIBRARY_PATH'}));
# AIX, OS/2
$ENV{'LIBPATH'} =
join(':', $openssl_libdir, split(/:/, $ENV{'LIBPATH'}));
# Binary path, works on all Unix-like platforms
$ENV{'PATH'} =
join(':', $openssl_bindir, split(/:/, $ENV{'PATH'}));
}
my $harness = TAP::Harness->new({
verbosity => (($ENV{CTEST_INTERACTIVE_DEBUG_MODE} // 0) != 0)
});
exit ($harness->runtests(glob("*.t"))->all_passed() ? 0 : 1);
|