bug-dejagnu
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]