From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14917 invoked by alias); 9 Jan 2002 23:38:39 -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 14850 invoked from network); 9 Jan 2002 23:38:39 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 9 Jan 2002 23:38:39 -0000 Received: from drow by nevyn.them.org with local (Exim 3.33 #1 (Debian)) id 16OSJa-0004dI-00 for ; Wed, 09 Jan 2002 18:39:26 -0500 Date: Wed, 09 Jan 2002 15:38:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: [RFA/testsuite] Fix linux-dp failure for multiple targets Message-ID: <20020109183926.A17757@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.23i X-SW-Source: 2002-01/txt/msg00209.txt.bz2 Two things I noticed in my testsuite runs. We were never finding the manager thread, and in gcc3 (which apparently unlike GCC2 produces reliable and stable addresses for the data pointers; I don't know why...) the second target board to run would find the old value of the seen array. 'array set' doesn't do what the author of the testcase expected. Is this OK? -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer 2002-01-09 Daniel Jacobowitz * gdb.threads/linux-dp.exp: Use 'array unset', not 'array set'. (check_philosopher_stack): Check for manager thread before checking for a just-starting thread. Index: linux-dp.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/linux-dp.exp,v retrieving revision 1.4 diff -u -p -r1.4 linux-dp.exp --- linux-dp.exp 2001/05/25 01:29:01 1.4 +++ linux-dp.exp 2002/01/09 23:35:01 @@ -172,6 +172,15 @@ proc check_philosopher_stack {thread see } set interesting 1 } + -re ".* in __pthread_manager \\(.*$gdb_prompt $" { + if {$manager_seen == 1} { + fail "manager thread is distinct: $thread" + } else { + set manager_seen 1 + pass "manager thread is distinct: $thread" + } + set interesting 1 + } -re "pthread_start_thread.*\r\n$gdb_prompt $" { ## Maybe the thread hasn't started yet. pass $name @@ -185,15 +194,6 @@ proc check_philosopher_stack {thread see } set interesting 1 } - -re ".* in __pthread_manager \\(.*$gdb_prompt $" { - if {$manager_seen == 1} { - fail "manager thread is distinct: $thread" - } else { - set manager_seen 1 - pass "manager thread is distinct: $thread" - } - set interesting 1 - } -re " in \\?\\?.*\r\n$gdb_prompt $" { ## Sometimes we can't get a backtrace. I'm going to call ## this a pass, since we do verify that at least one @@ -214,7 +214,7 @@ proc check_philosopher_stack {thread see } set any_interesting 0 -array set seen {} +array unset seen for {set i 1} {$i <= 7} {incr i} { if [check_philosopher_stack $i seen] { set any_interesting 1