From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22969 invoked by alias); 21 Jan 2004 22:20:57 -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 22943 invoked from network); 21 Jan 2004 22:20:56 -0000 Received: from unknown (HELO smtp10.atl.mindspring.net) (207.69.200.246) by sources.redhat.com with SMTP; 21 Jan 2004 22:20:56 -0000 Received: from user-119a90a.biz.mindspring.com ([66.149.36.10] helo=berman.michael-chastain.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 1AjQiU-00040Z-00; Wed, 21 Jan 2004 17:20:54 -0500 Received: by berman.michael-chastain.com (Postfix, from userid 502) id 6C14E4B104; Wed, 21 Jan 2004 17:21:04 -0500 (EST) To: gdb-patches@sources.redhat.com, jjohnstn@redhat.com Subject: Re: [RFA]: pending breakpoint support [2/3] Message-Id: <20040121222104.6C14E4B104@berman.michael-chastain.com> Date: Wed, 21 Jan 2004 22:20:00 -0000 From: mec.gnu@mindspring.com (Michael Elizabeth Chastain) X-SW-Source: 2004-01/txt/msg00599.txt.bz2 Hi Jeff, This needs some work. +gdb_test_multiple "b langs0" "break on nonexistent function in langs.exp" { + -re "Function \"langs0\" not defined\.$" { + pass "break on nonexistent function in langs.exp" + } + -re "Function \"langs0\" not defined\..*Make breakpoint pending.*" { + send_gdb "n\n" + pass "break on nonexistent function in langs.exp" + } + -re "Breakpoint .* (deferred).*" { + pass "break on nonexistent function in langs.exp" + } + -re ".*$gdb_prompt.*" { + fail "break on nonexistent function in langs.exp" + } + timeout { fail "break on nonexistent function in langs.exp" } +} All the arms of a gdb_test_muliple need to end in "$gdb_prompt $" (or something) to match all the text of the output string. A pattern like "Breakpoint .* (deferred).*" will match some indeterminate amount of text after "deferred", leading to nondeterministic results for the next test. "Make breakpoint pending" does not end in "$gdb_prompt $" but it should end with something other than ".*" for the same reason. You don't need a ".*$gdb_prompt $" or a "timeout" case; gdb_test_multiple automatically provides those. The '(' and ')' need to be escaped: "\\(deferred\\)". How come "Breakpoint .* \\(deferred\\).*$gdb_prompt $" is a PASS? The function does not exist, so shouldn't that be a FAIL? Or do I not understand your work? > Index: testsuite/gdb.base/pending.c > Index: testsuite/gdb.base/pendshr.c These file need copyright notices. See break.c for a good copyright notice. +gdb_test_multiple "break pendfunc1" "set pending breakpoint" { + -re ".*Make breakpoint pending.*$" { + gdb_test_multiple "y" "set pending breakpoint" { + -re "Breakpoint.*pendfunc1.*pending.*$gdb_prompt $" { + pass "set pending breakpoint" + } + } + } +} Same as before, don't put a ".*" at the end of a pattern. > diff -u -p -r1.7 shlib-call.exp > --- testsuite/gdb.base/shlib-call.exp 28 Sep 2002 01:12:04 -0000 1.7 > +++ testsuite/gdb.base/shlib-call.exp 21 Jan 2004 02:36:24 -0000 Add 2004 to the list of copyright years. Michael C