Make OpenSSL::Test::setup() a bit more forgiving
authorRichard Levitte <levitte@openssl.org>
Sat, 5 Mar 2016 18:05:25 +0000 (19:05 +0100)
committerRichard Levitte <levitte@openssl.org>
Mon, 7 Mar 2016 18:04:28 +0000 (19:04 +0100)
It was unexpected that OpenSSL::Test::setup() should be called twice
by the same recipe.  However, that may happen if a recipe combines
OpenSSL::Test and OpenSSL::Test::Simple, which can be a sensible thing
to do.  Therefore, we now allow it.

Reviewed-by: Rich Salz <rsalz@openssl.org>
test/testlib/OpenSSL/Test.pm

index 5139a5e..ecac93f 100644 (file)
@@ -121,9 +121,15 @@ is defined).
 =cut
 
 sub setup {
+    my $old_test_name = $test_name;
     $test_name = shift;
 
     BAIL_OUT("setup() must receive a name") unless $test_name;
+    warn "setup() detected test name change.  Innocuous, so we continue...\n"
+        if $old_test_name && $old_test_name ne $test_name;
+
+    return if $old_test_name;
+
     BAIL_OUT("setup() needs \$TOP or \$SRCTOP and \$BLDTOP to be defined")
         unless $ENV{TOP} || ($ENV{SRCTOP} && $ENV{BLDTOP});
     BAIL_OUT("setup() found both \$TOP and \$SRCTOP or \$BLDTOP...")
@@ -131,8 +137,8 @@ sub setup {
 
     __env();
 
-    BAIL_OUT("setup() expects the file Configure in the \$TOP directory")
-       unless -f srctop_file("Configure");
+    BAIL_OUT("setup() expects the file Configure in the source top directory")
+        unless -f srctop_file("Configure");
 
     __cwd($directories{RESULTS});
 }