From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9761 invoked by alias); 3 Mar 2003 22:44:41 -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 9753 invoked from network); 3 Mar 2003 22:44:40 -0000 Received: from unknown (HELO jackfruit.Stanford.EDU) (171.64.38.136) by 172.16.49.205 with SMTP; 3 Mar 2003 22:44:40 -0000 Received: (from carlton@localhost) by jackfruit.Stanford.EDU (8.11.6/8.11.6) id h23Midg13962; Mon, 3 Mar 2003 14:44:39 -0800 X-Authentication-Warning: jackfruit.Stanford.EDU: carlton set sender to carlton@math.stanford.edu using -f To: gdb-patches@sources.redhat.com Cc: Michael Elizabeth Chastain , Daniel Jacobowitz Subject: [patch] more gdb.c++/templates.exp failures From: David Carlton Date: Mon, 03 Mar 2003 22:44:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-03/txt/msg00070.txt.bz2 This patch converts some more gdb.c++/templates.exp failures (seen under GCC 3.1, DWARF 2). "ptype T5" and "ptype t5i" give the same output; they suffer from gdb/1111 and gdb/1113. I KFAILed them with respect to the former, mentioning the latter in a comment. "constructor breakpoint" triggers gdb/1062. "destructor breakpoint" triggers gdb/1112. I changed this from gdb_test into send_gdb/gdb_expect instead of gdb_test_multiple. I realize this makes me a bad person; one of these days I'll play around with gdb_test_multiple, honest I will. "print Garply >::garply" isn't a bug at all: as happened with one of the classes.exp tests, GDB prints out a 'const' in a situation where that's perfectly appropriate. Tested on i686-pc-linux-gnu/GCC3.1/DWARF-2; on that platform, "runtest gdb.c++/*.exp" prints the following happy output: === gdb Summary === # of expected passes 1608 # of known failures 25 /extra/gdb/mirror/src/gdb/testsuite/../../gdb/gdb version 2003-03-03-cvs -nx I'm planning to commit these tomorrow unless somebody objects. David Carlton carlton@math.stanford.edu 2003-03-03 David Carlton * gdb.c++/templates.exp (do_tests): Accept valid const in "print Garply >:: garply". (test_ptype_of_templates): KFAIL "ptype T5" and "ptype t5i" with respect to PR c++/1111; note also PR c++/1113. (test_template_breakpoints): KFAIL "constructor breakpoint" with respect to PR c++/1062. KFAIL "destructor breakpoint" with respect to PR c++/1112. Index: templates.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/templates.exp,v retrieving revision 1.17 diff -u -p -r1.17 templates.exp --- templates.exp 3 Mar 2003 18:39:47 -0000 1.17 +++ templates.exp 3 Mar 2003 22:35:31 -0000 @@ -61,6 +61,10 @@ proc test_ptype_of_templates {} { -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5 & operator=\\(T5 const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\((T5 const|const T5) ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" { pass "ptype T5 (obsolescent gcc or gdb)" } + -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5 const|const T5) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" { + # This also triggers gdb/1113... + kfail "gdb/1111" "ptype T5" + } -re ".*$gdb_prompt $" { fail "ptype T5" } @@ -83,6 +87,10 @@ proc test_ptype_of_templates {} { -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5 & operator=\\(T5 const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\(T5 const ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" { pass "ptype t5i (obsolescent gcc or gdb)" } + -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5 const|const T5) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" { + # This also triggers gdb/1113... + kfail "gdb/1111" "ptype T5" + } -re ".*$gdb_prompt $" { fail "ptype t5i" } @@ -114,6 +122,12 @@ proc test_template_breakpoints {} { "canceled" \ "constructor breakpoint" } + -re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5 at .*\[\r\n\]*.3. T5 at .*\[\r\n\]*> $" { + setup_kfail "gdb/1062" "*-*-*" + gdb_test "0" \ + "nonsense intended to insure that this test fails" \ + "constructor breakpoint" + } -re ".*\n> $" { gdb_test "0" \ "nonsense intended to insure that this test fails" \ @@ -125,9 +139,26 @@ proc test_template_breakpoints {} { # See CLLbs14792 if {$hp_aCC_compiler} {setup_xfail hppa*-*-* CLLbs14792} - gdb_test "break T5::~T5" \ - "Breakpoint.*at.* file .*${testfile}.cc, line.*" \ - "destructor breakpoint" + + send_gdb "break T5::~T5\n" + gdb_expect { + -re "Breakpoint.*at.* file .*${testfile}.cc, line.*$gdb_prompt $" + { + pass "destructor breakpoint" + } + -re "the class `T5' does not have destructor defined\r\nHint: try 'T5::~T5 or 'T5::~T5\r\n\\(Note leading single quote.\\)\r\n$gdb_prompt $" + { + kfail "gdb/1112" "destructor breakpoint" + } + -re ".*$gdb_prompt $" + { + fail "destructor breakpoint" + } + timeout + { + fail "destructor breakpoint (timeout)" + } + } gdb_test "break T5::value" \ "Breakpoint.*at.* file .*${testfile}.cc, line.*" \ @@ -479,7 +510,7 @@ gdb_expect { send_gdb "print Garply >::garply\n" gdb_expect { - -re "\\$\[0-9\]* = \\{(class |)Garply \\((class |)Garply > \\*, int, (class |)Garply\\)\\} $hex \[ \t\]*>::garply\\(int, (class |)Garply\\)>\r\n$gdb_prompt $" { pass "print Garply >::garply" } + -re "\\$\[0-9\]* = \\{(class |)Garply \\((class |)Garply > \\*(| const), int, (class |)Garply\\)\\} $hex \[ \t\]*>::garply\\(int, (class |)Garply\\)>\r\n$gdb_prompt $" { pass "print Garply >::garply" } -re ".*$gdb_prompt $" { fail "print Garply >::garply" } timeout { fail "print Garply >::garply (timeout)" } }