Make tests use configdata.pm rather than parsing Makefile

Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
Richard Levitte 2016-01-25 15:48:35 +01:00
parent dc193c9c5e
commit 83365051f5
8 changed files with 34 additions and 28 deletions

View File

@ -187,7 +187,7 @@ my $nofipscanistercheck=0;
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;
@ -705,7 +705,7 @@ foreach (sort (keys %disabled))
elsif (/^threads$/)
{ $no_threads = 1; }
elsif (/^shared$/)
{ $no_shared = 1; }
{ $config{no_shared} = 1; }
elsif (/^zlib$/)
{ $zlib = 0; }
elsif (/^static-engine$/)
@ -949,10 +949,10 @@ if (defined($disabled{"deprecated"})) {
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 "")
{
@ -963,7 +963,7 @@ if (!$no_shared)
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";
@ -1067,7 +1067,7 @@ if (!$no_asm) {
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";
}
@ -1361,7 +1361,7 @@ while (<IN>)
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;

View File

@ -67,9 +67,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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';

View File

@ -67,9 +67,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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';

View File

@ -68,9 +68,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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';

View File

@ -67,9 +67,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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");

View File

@ -67,9 +67,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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';

View File

@ -68,9 +68,7 @@ plan skip_all => "$test_name needs the engine feature enabled"
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';

View File

@ -7,7 +7,7 @@ use Exporter;
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
@ -19,13 +19,15 @@ OpenSSL::Test::Utils - test utility functions
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
@ -36,6 +38,10 @@ In a scalar context returns 1 if any of the features in ARRAY is disabled.
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
@ -70,6 +76,18 @@ sub disabled {
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>