]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - test/WrapOpenSSL.pm
tcl_tests: ca.try: Ignore openssl crl exit status for 'corrupted CRL' test
[openssl-gost/engine.git] / test / WrapOpenSSL.pm
1 #! /usr/bin/env perl
2 #
3 # CC0 license applied, see LICENSE.md
4
5 package WrapOpenSSL;
6 use strict;
7 use warnings;
8
9 use File::Basename;
10 use File::Spec::Functions;
11
12 sub load {
13     my ($class, $p) = @_;
14     my $app  = $p->{app_prove};
15
16     # turn on verbosity
17     my $verbose = $ENV{CTEST_INTERACTIVE_DEBUG_MODE} || $app->verbose();
18     $app->verbose( $verbose );
19
20     my $openssl_libdir = dirname($ENV{OPENSSL_CRYPTO_LIBRARY})
21         if $ENV{OPENSSL_CRYPTO_LIBRARY};
22     my $openssl_bindir = dirname($ENV{OPENSSL_PROGRAM})
23         if $ENV{OPENSSL_PROGRAM};
24     my $openssl_rootdir = $ENV{OPENSSL_ROOT_DIR};
25     my $openssl_rootdir_is_buildtree =
26         $openssl_rootdir && -d catdir($openssl_rootdir, 'configdata.pm');
27
28     unless ($openssl_libdir) {
29         $openssl_libdir = $openssl_rootdir_is_buildtree
30             ? $openssl_rootdir
31             : catdir($openssl_rootdir, 'lib');
32     }
33     unless ($openssl_bindir) {
34         $openssl_bindir = $openssl_rootdir_is_buildtree
35             ? catdir($openssl_rootdir, 'apps')
36             : catdir($openssl_rootdir, 'bin');
37     }
38
39     if ($openssl_libdir) {
40         # Variants of library paths
41         $ENV{$_} = join(':', $openssl_libdir, $ENV{$_} // ())
42             foreach (
43                      'LD_LIBRARY_PATH',    # Linux, ELF HP-UX
44                      'DYLD_LIBRARY_PATH',  # MacOS X
45                      'LIBPATH',            # AIX, OS/2
46             );
47         if ($verbose) {
48             print STDERR "Added $openssl_libdir to:\n";
49             print STDERR "  LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, LIBPATH\n";
50         }
51     }
52
53     if ($openssl_bindir) {
54         # Binary path, works the same everywhere
55         $ENV{PATH} = join(':', $openssl_bindir, $ENV{PATH});
56         if ($verbose) {
57             print STDERR "Added $openssl_bindir to:\n";
58             print STDERR "  PATH\n";
59         }
60     }
61     if ($verbose) {
62         print STDERR "$_=", $ENV{$_} // '', "\n"
63             foreach qw(LD_LIBRARY_PATH DYLD_LIBRARY_PATH LIBPATH PATH);
64     }
65 }
66
67 1;