my $baseaddr="0xFB00000";
my $no_threads=0;
my $threads=0;
-my $no_shared=0; # but "no-shared" is default
+$config{no_shared}=0; # but "no-shared" is default
my $zlib=1; # but "no-zlib" is default
my $no_rfc3779=0;
my $no_asm=0;
elsif (/^threads$/)
{ $no_threads = 1; }
elsif (/^shared$/)
- { $no_shared = 1; }
+ { $config{no_shared} = 1; }
elsif (/^zlib$/)
{ $zlib = 0; }
elsif (/^static-engine$/)
my $shared_mark = "";
if ($target{shared_target} eq "")
{
- $no_shared_warn = 1 if !$no_shared && !$fips;
- $no_shared = 1;
+ $no_shared_warn = 1 if !$config{no_shared} && !$fips;
+ $config{no_shared} = 1;
}
-if (!$no_shared)
+if (!$config{no_shared})
{
if ($target{shared_cflag} ne "")
{
if ($target{build_scheme}->[0] ne "mk1mf")
{
# add {no-}static-engine to options to allow mkdef.pl to work without extra arguments
- if ($no_shared)
+ if ($config{no_shared})
{
push @{$config{openssl_other_defines}}, "OPENSSL_NO_DYNAMIC_ENGINE";
$config{options}.=" static-engine";
if ($target{md5_obj} =~ /\.o$/) {
$cflags.=" -DMD5_ASM";
}
- $target{cast_obj}=$table{BASE}->{cast_obj} if (!$no_shared); # CAST assembler is not PIC
+ $target{cast_obj}=$table{BASE}->{cast_obj} if (!$config{no_shared}); # CAST assembler is not PIC
if ($target{rmd160_obj} =~ /\.o$/) {
$cflags.=" -DRMD160_ASM";
}
s/^BASEADDR=.*/BASEADDR=$baseaddr/;
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$target{shared_target}/;
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
- s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
+ s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$config{no_shared});
if ($target{shared_extension} ne "" && $target{shared_extension} =~ /^\.s([ol])\.[^\.]*$/)
{
my $sotmp = $1;
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
plan skip_all => "dh is not supported by this OpenSSL build"
if disabled("dh");
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
if disabled("engine");
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
- unless (map { s/\R//; s/^SHARED_LIBS=\s*//; $_ }
- grep { /^SHARED_LIBS=/ }
- do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
+ if config("no_shared");
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = "0.1";
@ISA = qw(Exporter);
-@EXPORT = qw(disabled);
+@EXPORT = qw(disabled config);
=head1 NAME
disabled("dh");
+ config("no_shared");
+
=head1 DESCRIPTION
This module provides utility functions for the testing framework.
=cut
-use OpenSSL::Test;
+use OpenSSL::Test qw/:DEFAULT top_file/;
=over 4
In an array context returns an array with each element set to 1 if the
corresponding feature is disabled and 0 otherwise.
+=item B<config STRING>
+
+Returns an item from the %config hash in \$TOP/configdata.pm.
+
=back
=cut
return 0;
}
+our %config;
+sub config {
+ if (!%config) {
+ # We eval it so it doesn't run at compile time of this file.
+ # The latter would have top_dir() complain that setup() hasn't
+ # been run yet.
+ my $configdata = top_file("configdata.pm");
+ eval { require $configdata; %config = %configdata::config };
+ }
+ return $config{$_[0]};
+}
+
=head1 SEE ALSO
L<OpenSSL::Test>