From 83365051f5d91dece1973016dbdd6ce7541a5bcf Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 25 Jan 2016 15:48:35 +0100 Subject: [PATCH] Make tests use configdata.pm rather than parsing Makefile Reviewed-by: Rich Salz --- Configure | 16 ++++++++-------- test/recipes/70-test_sslcertstatus.t | 4 +--- test/recipes/70-test_sslextension.t | 4 +--- test/recipes/70-test_sslsessiontick.t | 4 +--- test/recipes/70-test_sslskewith0p.t | 4 +--- test/recipes/70-test_sslvertol.t | 4 +--- test/recipes/70-test_tlsextms.t | 4 +--- test/testlib/OpenSSL/Test/Utils.pm | 22 ++++++++++++++++++++-- 8 files changed, 34 insertions(+), 28 deletions(-) diff --git a/Configure b/Configure index 276a1438b8..e717eb3973 100755 --- a/Configure +++ b/Configure @@ -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 () 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; diff --git a/test/recipes/70-test_sslcertstatus.t b/test/recipes/70-test_sslcertstatus.t index 65a5ec1f22..f7c6363cbb 100755 --- a/test/recipes/70-test_sslcertstatus.t +++ b/test/recipes/70-test_sslcertstatus.t @@ -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'; diff --git a/test/recipes/70-test_sslextension.t b/test/recipes/70-test_sslextension.t index 29cff45ee0..31632a717a 100755 --- a/test/recipes/70-test_sslextension.t +++ b/test/recipes/70-test_sslextension.t @@ -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'; diff --git a/test/recipes/70-test_sslsessiontick.t b/test/recipes/70-test_sslsessiontick.t index 84fc4df7fd..84ab66199d 100755 --- a/test/recipes/70-test_sslsessiontick.t +++ b/test/recipes/70-test_sslsessiontick.t @@ -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'; diff --git a/test/recipes/70-test_sslskewith0p.t b/test/recipes/70-test_sslskewith0p.t index c31ea0ddfd..39c0409427 100755 --- a/test/recipes/70-test_sslskewith0p.t +++ b/test/recipes/70-test_sslskewith0p.t @@ -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"); diff --git a/test/recipes/70-test_sslvertol.t b/test/recipes/70-test_sslvertol.t index d626763575..c711d86fb5 100755 --- a/test/recipes/70-test_sslvertol.t +++ b/test/recipes/70-test_sslvertol.t @@ -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'; diff --git a/test/recipes/70-test_tlsextms.t b/test/recipes/70-test_tlsextms.t index b6ff47e840..a861064ee1 100644 --- a/test/recipes/70-test_tlsextms.t +++ b/test/recipes/70-test_tlsextms.t @@ -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'; diff --git a/test/testlib/OpenSSL/Test/Utils.pm b/test/testlib/OpenSSL/Test/Utils.pm index 5312c205a0..eed44244b8 100644 --- a/test/testlib/OpenSSL/Test/Utils.pm +++ b/test/testlib/OpenSSL/Test/Utils.pm @@ -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 + +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 -- 2.40.0