'make test' must fail if Asan fails

When running 'make test' with GNU make, if a test suite program
displays "PASSED", this was automatically counted as a pass. This
would in particular count as passing:
* A test suite with the substring "PASSED" in a test description.
* A test suite where all the test cases succeeded, but the final
  cleanup failed, in particular if a sanitizer reported a memory leak.

Use the test executable's return status instead to determine whether
the test suite passed. It's always 0 on PASSED unless the executable's
cleanup code fails, and it's never 0 on any failure.

Fix ARMmbed/mbed-crypto#303
This commit is contained in:
Gilles Peskine 2019-10-21 19:08:07 +02:00
parent 5ca393f7b8
commit ce35cb3cc7

View file

@ -93,7 +93,7 @@ for my $suite (@suites)
$suite_cases_failed = () = $result =~ /.. FAILED/g; $suite_cases_failed = () = $result =~ /.. FAILED/g;
$suite_cases_skipped = () = $result =~ /.. ----/g; $suite_cases_skipped = () = $result =~ /.. ----/g;
if( $result =~ /PASSED/ ) { if( $? == 0 ) {
print "PASS\n"; print "PASS\n";
if( $verbose > 2 ) { if( $verbose > 2 ) {
pad_print_center( 72, '-', "Begin $suite" ); pad_print_center( 72, '-', "Begin $suite" );