From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15367 invoked by alias); 21 Jan 2002 01:10:55 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 15282 invoked from network); 21 Jan 2002 01:10:51 -0000 Received: from unknown (HELO localhost.cygnus.com) (24.114.42.213) by sources.redhat.com with SMTP; 21 Jan 2002 01:10:51 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.cygnus.com (Postfix) with ESMTP id 659EC3F0A; Sun, 20 Jan 2002 20:10:40 -0500 (EST) Message-ID: <3C4B6A90.8090801@cygnus.com> Date: Sun, 20 Jan 2002 17:10:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.7) Gecko/20020103 X-Accept-Language: en-us MIME-Version: 1.0 To: Fernando Nasser Cc: Hans-Peter Nilsson , gdb-patches@sources.redhat.com Subject: Re: remote.exp: fail properly if wrapper status message isn't found References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-01/txt/msg00619.txt.bz2 Should this be committed to the src/dejagnu source base (regardless of dejagnu)? Andrew > 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 > > * 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 > } > } > >