Fixes an issue where, when the test suite was being run with the older
Test::Harness package, the test suite would not complete correctly due
to evaluation of $harness->runtests()->has_errors, which is only
available for the newer TAP::Parser::Aggregator code path.
Fixes #17818.
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17823)
my $ret =
$harness->runtests(map { [ abs2rel($_, rel2abs(curdir())), basename($_) ] }
@preps);
-die if $ret->has_errors;
-$ret =
- $harness->runtests(map { [ abs2rel($_, rel2abs(curdir())), basename($_) ] }
- sort { reorder($a) cmp reorder($b) } keys %tests);
+
+if (ref($ret) ne "TAP::Parser::Aggregator" || !$ret->has_errors) {
+ $ret =
+ $harness->runtests(map { [ abs2rel($_, rel2abs(curdir())), basename($_) ] }
+ sort { reorder($a) cmp reorder($b) } keys %tests);
+}
# If this is a TAP::Parser::Aggregator, $ret->has_errors is the count of
# tests that failed. We don't bother with that exact number, just exit