From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15940 invoked by alias); 27 May 2002 19:24:26 -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 15911 invoked from network); 27 May 2002 19:24:21 -0000 Received: from unknown (HELO duracef.shout.net) (204.253.184.12) by sources.redhat.com with SMTP; 27 May 2002 19:24:21 -0000 Received: (from mec@localhost) by duracef.shout.net (8.11.6/8.11.6) id g4RJOJw27502; Mon, 27 May 2002 14:24:19 -0500 Date: Mon, 27 May 2002 12:34:00 -0000 From: Michael Elizabeth Chastain Message-Id: <200205271924.g4RJOJw27502@duracef.shout.net> To: bkoz@redhat.com, gdb-patches@sources.redhat.com Subject: Re: gdb.c++ testsuite 2.1: try_catch.exp X-SW-Source: 2002-05/txt/msg00949.txt.bz2 There was a cut-and-paste error here (line 122 versus line 118): send_gdb "break 122\n" gdb_expect { -re "Breakpoint \[0-9\]*.*line 118\\.\r\n$gdb_prompt $" { ... I rewrote all the send_gdb/gdb_expect pairs to gdb_test. This simplifies the test script a lot: gdb_test "break 61" "Breakpoint \[0-9\]*.*line 61\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:61\r\n.*" "continue to 61" As a side note, all test names within a test script must be unique to facilitate comparing test runs against each other. That's why gdb_test "continue" has a third argument, so that I don't get a bunch of tests all named "continue". Your original script does this correctly; I'm just mentioning it. The actual tests are very simple. They don't test any of the try/catch functionality in gdb, just the control flow of the target program. A simple test is better than no test; someone can add more tests to this later. All the tests pass in all the configurations that I tested: target = native host = i686-pc-linux-gnu%rh-7.2 gdb = 5.2, gdb_5_2-branch%20020526, HEAD gcc = 2.95.3, 2.96-rh, 3.0.4, 3.1, gcc-3_1-branch%20020526, HEAD%20020526 glibc = vendor goption = -gdwarf2, -gstabs+ I build all my gcc's with --disable-shared. So if there is a bug with shared gcc libraries, then I won't see it. Here is the revised version of try_catch.exp. I will commit this shortly. Michael C === # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Tests for member data # 2002-05-27 Benjamin Kosnik # This file is part of the gdb testsuite if $tracelevel then { strace $tracelevel } if { [skip_cplus_tests] } { continue } # # test running programs # set prms_id 0 set bug_id 0 set testfile "try_catch" set srcfile ${testfile}.cc set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } if [get_compiler_info ${binfile} "c++"] { return -1 } gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} if ![runto_main] then { perror "couldn't run to breakpoint" continue } # One. gdb_test "break 61" "Breakpoint \[0-9\]*.*line 61\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:61\r\n.*" "continue to 61" gdb_test "break 66" "Breakpoint \[0-9\]*.*line 66\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:66\r\n.*" "continue to 66" gdb_test "break 80" "Breakpoint \[0-9\]*.*line 80\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:80\r\n.*" "continue to 80" gdb_test "break 83" "Breakpoint \[0-9\]*.*line 83\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:83\r\n.*" "continue to 83" gdb_test "break 87" "Breakpoint \[0-9\]*.*line 87\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:87\r\n.*" "continue to 87" gdb_test "break 92" "Breakpoint \[0-9\]*.*line 92\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:92\r\n.*" "continue to 92" gdb_test "break 118" "Breakpoint \[0-9\]*.*line 118\\." gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:118\r\n.*" "continue to 118" gdb_test "break 122" "Breakpoint \[0-9\]*.*line 122\\." gdb_test "continue\n" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:122\r\n.*" "continue to 122" gdb_exit return 0