From: Richard Levitte Date: Wed, 29 Apr 2015 19:51:25 +0000 (+0200) Subject: New feature: STOPTEST X-Git-Tag: OpenSSL_1_1_0-pre1~667 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=caadc54381af04dd49d9812737d40fea320c8674 New feature: STOPTEST When the environment variable STOPTEST is defined (with any value other than the empty string), the test machinery in OpenSSL::Test goes into a different mode that will stop all testing at the end of a failing recipe. Reviewed-by: Rich Salz --- diff --git a/test/testlib/OpenSSL/Test.pm b/test/testlib/OpenSSL/Test.pm index 644f4dd6a5..207e801607 100644 --- a/test/testlib/OpenSSL/Test.pm +++ b/test/testlib/OpenSSL/Test.pm @@ -27,6 +27,8 @@ my %directories = (); # Directories we want to keep track of # to the environment variables TOP (mandatory), # BIN_D, TEST_D and RESULT_D. +my $end_with_bailout = 0; + sub quotify; sub __top_file { @@ -140,6 +142,8 @@ sub setup { $directories{TEST} = $ENV{TEST_D} || catdir($directories{TOP},"test"); $directories{RESULTS} = $ENV{RESULT_D} || $directories{TEST}; + $end_with_bailout = $ENV{STOPTEST} ? 1 : 0; + BAIL_OUT("setup() expects the file Configure in the \$TOP directory") unless -f top_file("Configure"); @@ -273,6 +277,13 @@ sub cmdstr { return $display_cmd; } +END { + my $tb = Test::More->builder; + my $failure = scalar(grep { $_ == 0; } $tb->summary); + if ($failure && $end_with_bailout) { + BAIL_OUT("Stoptest!"); + } +} sub run { my ($cmd, $display_cmd, %errlogs) = shift->(0); my %opts = @_;