#!/usr/bin/perl use TAP::Harness; exit 0 if (defined $ENV{'SKIP_PERL_TEST'}); 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);