From: David Malcolm Date: Mon, 1 Dec 2014 16:25:59 +0000 (+0000) Subject: jit.exp: Verify the exit status of the spawnee X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dc706721e6e9f2c6c15469c4e65a8f5c64276ec1;p=gcc.git jit.exp: Verify the exit status of the spawnee gcc/testsuite/ChangeLog: * jit.dg/jit.exp (verify_exit_status): New function. (fixed_host_execute): Verify the exit status of the spawnee. From-SVN: r218229 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e2f2dfd4bc4..737854270c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-12-01 David Malcolm + + * jit.dg/jit.exp (verify_exit_status): New function. + (fixed_host_execute): Verify the exit status of the spawnee. + 2014-12-01 David Malcolm * jit.dg/jit.exp (fixed_host_execute): Fix timeout bug. diff --git a/gcc/testsuite/jit.dg/jit.exp b/gcc/testsuite/jit.dg/jit.exp index 2edd0483a81..a37ccc7ba1a 100644 --- a/gcc/testsuite/jit.dg/jit.exp +++ b/gcc/testsuite/jit.dg/jit.exp @@ -65,6 +65,35 @@ proc parse_valgrind_logfile {name logfile} { close $f } +# Given WRES, the result from "wait", issue a PASS +# if the spawnee exited cleanly, or a FAIL for various kinds of +# unexpected exits. + +proc verify_exit_status { executable wres } { + lassign $wres pid spawnid os_error_flag value + verbose "pid: $pid" 3 + verbose "spawnid: $spawnid" 3 + verbose "os_error_flag: $os_error_flag" 3 + verbose "value: $value" 3 + + # Detect segfaults etc: + if { [llength $wres] > 4 } { + if { [lindex $wres 4] == "CHILDKILLED" } { + fail "$executable killed: $wres" + return + } + } + if { $os_error_flag != 0 } { + fail "$executable: OS error: $wres" + return + } + if { $value != 0 } { + fail "$executable: non-zero exit code: $wres" + return + } + pass "$executable exited cleanly" +} + # This is host_execute from dejagnu.exp commit # 126a089777158a7891ff975473939f08c0e31a1c # with the following patch applied, and renaming to "fixed_host_execute". @@ -214,6 +243,7 @@ proc fixed_host_execute {args} { catch wait wres verbose "wres: $wres" 2 + verify_exit_status $executable $wres if $run_under_valgrind { upvar 2 name name