This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [rfc] xfailed tests in gdb.c++/classes.exp
On Fri, 28 Feb 2003 10:15:21 -0500, Daniel Jacobowitz <drow at mvista dot com> said:
> The consensus is obviously that this output is OK. David, please do
> add the new pass patterns.
Done; patch below. Interestingly, it turns out that some of the
'ptype class/struct' tests in that file also contained setup_xfails
that should be treated as FAIL as well as treated as PASS (accepting
structs with missing protected/private protection specifiers); I
deleted those setup_xfail lines, too, but left those tests as FAIL.
(GDB currently passes the tests in question.)
I'd also forgotten that there were XFAILs in there that I actually am
seeing that weren't related to this issue: yet another instance of the
nested types bug. I'll prepare a patch for that shortly.
(Whoops: reading the patch below, I got class public_class slightly
wrong; I'll commit another patch for that in a sec.)
David Carlton
carlton at math dot stanford dot edu
2003-02-28 David Carlton <carlton at math dot stanford dot edu>
* gdb.c++/classes.exp (test_ptype_class_objects): Accept it if we
print class instead of struct and/or superfluous protection
specifiers, as long as the resulting output is equivalent to the
source code.
Delete FIXME from end of messages on tests that don't need
fixing.
Index: classes.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/classes.exp,v
retrieving revision 1.14
diff -u -p -r1.14 classes.exp
--- classes.exp 13 Feb 2003 21:33:20 -0000 1.14
+++ classes.exp 28 Feb 2003 17:44:14 -0000
@@ -55,7 +55,7 @@ proc test_ptype_class_objects {} {
# Note that struct members are public by default, so we don't print
# "public:" for the public members of structs.
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype struct default_public_struct\n"
@@ -64,8 +64,7 @@ proc test_ptype_class_objects {} {
pass "ptype struct default_public_struct"
}
-re "type = class default_public_struct \{$nl.*int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct default_public_struct"
+ pass "ptype struct default_public_struct"
}
-re ".*$gdb_prompt $" { fail "ptype struct default_public_struct" }
timeout { fail "ptype struct default_public_struct (timeout)" ; return }
@@ -73,7 +72,7 @@ proc test_ptype_class_objects {} {
# Note that struct members are public by default, so we don't print
# "public:" for the public members of structs.
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype struct explicit_public_struct\n"
@@ -82,75 +81,70 @@ proc test_ptype_class_objects {} {
pass "ptype struct explicit_public_struct"
}
-re "type = class explicit_public_struct \{$nl.*int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct explicit_public_struct"
+ pass "ptype struct explicit_public_struct"
}
-re ".*$gdb_prompt $" { fail "ptype struct explicit_public_struct" }
timeout { fail "ptype struct explicit_public_struct (timeout)" ; return }
}
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype struct protected_struct\n"
gdb_expect {
-re "type = struct protected_struct \{${ws}protected:${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
- pass "ptype struct protected_struct (FIXME)"
+ pass "ptype struct protected_struct"
}
-re "type = class protected_struct \{${ws}protected:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct protected_struct (FIXME)"
+ pass "ptype struct protected_struct"
}
-re ".*$gdb_prompt $" { fail "ptype struct protected_struct" }
timeout { fail "ptype struct protected_struct (timeout)" ; return }
}
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype struct private_struct\n"
gdb_expect {
-re "type = struct private_struct \{${ws}private:${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
- pass "ptype struct private_struct (FIXME)"
+ pass "ptype struct private_struct"
}
-re "type = class private_struct \{${ws}private:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct private_struct (FIXME)"
+ pass "ptype struct private_struct"
}
-re ".*$gdb_prompt $" { fail "ptype struct private_struct" }
timeout { fail "ptype struct private_struct (timeout)" ; return }
}
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype struct mixed_protection_struct\n"
gdb_expect {
-re "type = struct mixed_protection_struct \{${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl\}$nl$gdb_prompt $" {
- pass "ptype struct mixed_protection_struct (FIXME)"
+ pass "ptype struct mixed_protection_struct"
}
-re "type = struct mixed_protection_struct \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl.*\}$nl$gdb_prompt $" {
pass "ptype struct mixed_protection_struct (extra public)"
}
-re "type = class mixed_protection_struct \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct mixed_protection_struct (FIXME)"
+ pass "ptype struct mixed_protection_struct"
}
-re ".*$gdb_prompt $" { fail "ptype struct mixed_protection_struct" }
timeout { fail "ptype struct mixed_protection_struct (timeout)" ; return }
}
- # Accept it as an expected failure if gdb just fails to distinguish between
+ # Accept it if gdb just fails to distinguish between
# class and struct, and everything else is OK.
send_gdb "ptype class public_class\n"
gdb_expect {
-re "type = class public_class \{${ws}public:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- pass "ptype class public_class (FIXME)"
+ pass "ptype class public_class"
}
-re "type = struct public_class \{${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class public_class (FIXME)"
+ fail "ptype class public_class"
}
-re ".*$gdb_prompt $" { fail "ptype class public_class" }
timeout { fail "ptype class public_class (timeout)" ; return }
@@ -162,14 +156,13 @@ proc test_ptype_class_objects {} {
pass "ptype class protected_class"
}
-re "type = struct protected_class \{${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
fail "ptype class protected_class"
}
-re ".*$gdb_prompt $" { fail "ptype class protected_class" }
timeout { fail "ptype class protected_class (timeout)" ; return }
}
- # Accept it as an expected failure if gdb just emits a superflous "private:"
+ # Accept it if gdb just emits a superflous "private:"
# attribute, since classes default to private and for consistency with
# structs (where we don't print the "public:" attribute) we don't print
# the "private:" attribute.
@@ -177,11 +170,10 @@ proc test_ptype_class_objects {} {
send_gdb "ptype class default_private_class\n"
gdb_expect {
-re "type = class default_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- pass "ptype class default_private_class (FIXME)"
+ pass "ptype class default_private_class"
}
-re "type = class default_private_class \{${ws}private:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class default_private_class (FIXME)"
+ pass "ptype class default_private_class"
}
-re ".*$gdb_prompt $" { fail "ptype class default_private_class" }
timeout { fail "ptype class default_private_class (timeout)" ; return }
@@ -193,10 +185,9 @@ proc test_ptype_class_objects {} {
pass "ptype class explicit_private_class"
}
-re "type = class explicit_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- pass "ptype class explicit_private_class (OK for HP aCC)"
+ pass "ptype class explicit_private_class"
}
-re "type = struct explicit_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
fail "ptype class explicit_private_class"
}
-re ".*$gdb_prompt $" { fail "ptype class explicit_private_class" }
@@ -209,7 +200,6 @@ proc test_ptype_class_objects {} {
pass "ptype class mixed_protection_class"
}
-re "type = struct mixed_protection_class \{${ws}int a;${ws}int b;${ws}int c;${ws}int d;${ws}int e;${ws}int f;${ws}int g;${ws}int h;${ws}int i;$nl.*\}$nl$gdb_prompt $" {
- setup_xfail "*-*-*"
fail "ptype class mixed_protection_class"
}
-re ".*$gdb_prompt $" { fail "ptype class mixed_protection_class" }