[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-dejagnu] remote.exp: fail properly if wrapper status message isn't
From: |
Hans-Peter Nilsson |
Subject: |
[Bug-dejagnu] remote.exp: fail properly if wrapper status message isn't found |
Date: |
Sat, 10 Nov 2001 11:22:04 -0500 (EST) |
Hi.
I had a bug in the fini code in the newlib port of
mmix-knuth-mmixware (film at 11) which exposed this dejagnu
fault: a target using a wrapper gets a PASS if the "*** EXIT
code ..." pattern isn't output. IIRC, at the time I tested
this on other simulator targets, that fault exposed two other
gcc testsuite failures on some other target. I can't remember
which; it might have been d30v or mn10300.
Please consider applying this. Please make sure to CC me on
follow-ups as I'm not subscribed to these lists.
2001-11-10 Hans-Peter Nilsson <address@hidden>
* lib/remote.exp (check_for_board_status): Return 2 if the board
uses a status wrapper and there was no match for the expected
pattern.
Index: remote.exp
===================================================================
RCS file: /cvsroot/dejagnu/dejagnu/lib/remote.exp,v
retrieving revision 1.4
diff -p -c -r1.4 remote.exp
*** remote.exp 2001/10/02 15:48:51 1.4
--- remote.exp 2001/11/10 15:59:40
*************** proc standard_wait { dest timeout } {
*** 1050,1055 ****
--- 1050,1065 ----
proc check_for_board_status { variable } {
upvar $variable output;
+ # If all programs of this board have a wrapper that always outputs a
+ # status message, then the absence of it means that the program
+ # crashed, regardless of status found elsewhere (e.g. simulator exit
+ # code).
+ if { [target_info needs_status_wrapper] != "" } then {
+ set nomatch_return 2
+ } else {
+ set nomatch_return -1
+ }
+
if [regexp "(^|\[\r\n\])\\*\\*\\* EXIT code" $output] {
regsub "^.*\\*\\*\\* EXIT code " $output "" result;
regsub "\[\r\n\].*$" $result "" result;
*************** proc check_for_board_status { variable
*** 1059,1070 ****
verbose "got board status $result" 3
verbose "output is $output" 3
if { $result == "" } {
! return -1;
} else {
return [expr $result];
}
} else {
! return -1;
}
}
--- 1069,1080 ----
verbose "got board status $result" 3
verbose "output is $output" 3
if { $result == "" } {
! return $nomatch_return
} else {
return [expr $result];
}
} else {
! return $nomatch_return
}
}
brgds, H-P
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-dejagnu] remote.exp: fail properly if wrapper status message isn't found,
Hans-Peter Nilsson <=