]> git.saurik.com Git - apple/ld64.git/blobdiff - unit-tests/bin/fail-if-exit-zero.pl
ld64-77.tar.gz
[apple/ld64.git] / unit-tests / bin / fail-if-exit-zero.pl
index f1610c99598581488b97d590bfcfca34a8c311f0..7859888f88dd3dba4b853b0f591bf634d2ec4b4e 100755 (executable)
@@ -7,12 +7,16 @@ if ( exists $ENV{UNIT_TEST_NAME} ) {
     $test_name = $ENV{UNIT_TEST_NAME};
 }
 
-if(system(@ARGV) == 0)
+my $ret = system(@ARGV);
+my $exit_value  = $ret >> 8;
+my $signal_num  = $ret & 127;
+my $dumped_core = $ret & 128;
+my $crashed  = $signal_num + $dumped_core;
+
+if(0 == $exit_value || 0 != $crashed)
 {
     printf("FAIL $test_name\n");
     exit 1;
 }
-else
-{
-    exit 0;
-}
+
+exit 0;