From 6c273702576d6510556171eb471a195c5885adcd Mon Sep 17 00:00:00 2001 From: dmalcolm Date: Mon, 1 Dec 2014 16:25:59 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218229 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/jit.dg/jit.exp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e2f2dfd4bc4..737854270c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 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. 2014-12-01 David Malcolm 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 -- 2.11.4.GIT