New feature: STOPTEST
[openssl.git] / test / testlib / OpenSSL / Test.pm
index 644f4dd6a5adf8ddcaa885af2f2479a576db4dd3..207e8016076adc0638a10f6565664d8596b7118f 100644 (file)
@@ -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 = @_;