Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
@ 2020-02-21 11:02 Tom de Vries
  2020-02-21 14:54 ` Tom Tromey
  0 siblings, 1 reply; 7+ messages in thread
From: Tom de Vries @ 2020-02-21 11:02 UTC (permalink / raw)
  To: gdb-patches

Hi,

With gccgo-6/7, we have:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
XFAIL: gdb.go/methods.exp: going to first breakpoint \
  (the program exited)
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
XFAIL: gdb.go/methods.exp: going to second breakpoint \
  (the program is no longer running)
...

And with gccgo-8/9/10, we have:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
XFAIL: gdb.go/methods.exp: going to first breakpoint
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
XFAIL: gdb.go/methods.exp: going to second breakpoint \
  (the program exited)
...

The first test passes and fails with different messages:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
...
or:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
...
Fix this by removing the explicit pass call and using the message argument for
gdb_breakpoint, for both breakpoint locations.

The setup of the xfails is non-specific:
...
setup_xfail "*-*-*" ;# mangling issues IIRC
...
so let's start with removing these.

The first FAIL with gccgo-6:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
...
is due an incorrect DW_AT_name attribute:
...
    #    <554>   DW_AT_name        : main.Foo.N6_main.T
...
Fix this by recognizing the incorrect attribute, and xfailing the test.

Furthermore, if setting the breakpoint fails, there's not much point in trying
to continue to the breakpoint:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
FAIL: gdb.go/methods.exp: going to first breakpoint (the program exited)
...
Fix this by skipping the second test if the first one fails, also for the
second breakpoint.

With gccgo-10, we manage to set the first breakpoint, but continuing to
breakpoint test fails:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
XFAIL: gdb.go/methods.exp: going to first breakpoint
...
This is due to an incorrect regexp, requiring a colon in front of the
breakpoint location.  Fix this for both breakpoints.

Setting the second breakpoint fails:
...
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
...
presumably because the breakpoint location "(*main.T).Bar" does not follow the
naming convention explained at https://golang.org/doc/gdb#Naming.  Fix this by
updating the breakpoint location to "main.(*T).Bar".

Still this test fails, for gccgo-6/7 because of an incorrect DW_AT_name
attribute:
...
    # <529>   DW_AT_name        : main.Bar.pN6_main.T
...
and for gccgo-8/9/10 because of incorrect DW_AT_name/DW_AT_linkage_name
attributes (filed as gcc PR93866):
...
    #    <6e5>   DW_AT_name        : main.Bar..1main.T
    #    <6ec>   DW_AT_linkage_name: main.T.Bar
..
Add xfails for both of these.

All in all, now we have with gccgo-6/7:
...
XFAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
XFAIL: gdb.go/methods.exp: setting breakpoint at main.(*T).Bar
...
and with gccgo-8/9/10, we have:
...
PASS: gdb.go/methods.exp: setting breakpoint at main.T.Foo
PASS: gdb.go/methods.exp: going to first breakpoint
XFAIL: gdb.go/methods.exp: setting breakpoint at main.(*T).Bar
...

Tested on x86_64-linux with gccgo-6/7/8/9/10.

OK for trunk?

Thanks,
- Tom

[gdb/testsuite] Fix gdb.go/methods.exp

gdb/testsuite/ChangeLog:

2020-02-21  Tom de Vries  <tdevries@suse.de>

	PR go/18926
	* lib/gdb.exp (exec_contains_debug_info_string): New proc.
	* lib/gdb.exp (bp_location2/bp_location2_regexp): Fix.
	Remove blanket xfails.  Use message argument for gdb_breakpoint.
	Make continuing to breakpoint test conditional on setting breakpoint.
	Fix continuing to breakpoint regexp.  Add xfails for gccgo-6/7
	DW_AT_name attribute.  Add xfail for GCC PR93866.

---
 gdb/testsuite/gdb.go/methods.exp | 55 ++++++++++++++++++++++++++++++++--------
 gdb/testsuite/lib/gdb.exp        | 12 +++++++++
 2 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/gdb/testsuite/gdb.go/methods.exp b/gdb/testsuite/gdb.go/methods.exp
index e698cf378f..3b4b56ccc4 100644
--- a/gdb/testsuite/gdb.go/methods.exp
+++ b/gdb/testsuite/gdb.go/methods.exp
@@ -29,22 +29,57 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug go}]
 }
 
 set bp_location1 {main.T.Foo}
-set bp_location2 {(*main.T).Bar}
-set bp_location2_regexp {\(*main.T\).Bar}
+set bp_location2 {main.(*T).Bar}
+set bp_location2_regexp {main.\(\*T\).Bar}
 
 if { [go_runto_main] < 0 } {
     untested "could not run to main"
     return -1
 }
 
-if { [gdb_breakpoint ${bp_location1}] } {
-    pass "setting breakpoint 1"
+if { [exec_contains_debug_info_string $binfile \
+	  "DW_AT_name.*: main.Foo.N6_main.T"] } {
+    # We have with gccgo-6/7:
+    # <1><553>: Abbrev Number: 21 (DW_TAG_subprogram)
+    #    <554>   DW_AT_name        : main.Foo.N6_main.T
+    setup_xfail "*-*-*"
+} else {
+    # We have with gccgo-8/9/10:
+    # <1><1e24>: Abbrev Number: 40 (DW_TAG_subprogram)
+    #    <1e25>   DW_AT_name        : main.Foo.main.T
+    #    <1e2c>   DW_AT_linkage_name: main.T.Foo
+
+    # For reference: with go1.11.13:
+    # <1><6c46b>: Abbrev Number: 2 (DW_TAG_subprogram)
+    #    <6c46c>   DW_AT_name        : main.T.Foo
+}
+
+if { [gdb_breakpoint ${bp_location1} message]} {
+    gdb_test "cont" "Breakpoint .*, ${bp_location1}.*" \
+	"going to first breakpoint"
 }
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location1}.*" "going to first breakpoint"
 
-if { [gdb_breakpoint ${bp_location2}] } {
-    pass "setting breakpoint 2"
+if { [exec_contains_debug_info_string $binfile \
+	  "DW_AT_name.*: main.Bar.pN6_main.T"] } {
+    # We have with gccgo-6/7:
+    # <1><528>: Abbrev Number: 19 (DW_TAG_subprogram)
+    # <529>   DW_AT_name        : main.Bar.pN6_main.T
+    setup_xfail "*-*-*"
+} elseif { [exec_contains_debug_info_string $binfile \
+	  "DW_AT_linkage_name.*: main.T.Bar"] } {
+    # We have with gccgo-8/9/10:
+    # <1><6e4>: Abbrev Number: 24 (DW_TAG_subprogram)
+    #    <6e5>   DW_AT_name        : main.Bar..1main.T
+    #    <6ec>   DW_AT_linkage_name: main.T.Bar
+    # xfail for GCC PR93866
+    setup_xfail "*-*-*"
+} else {
+    # For reference: with go1.11.13:
+    # <1><6c49a>: Abbrev Number: 2 (DW_TAG_subprogram)
+    #    <6c49b>   DW_AT_name        : main.(*T).Bar
+ }
+
+if { [gdb_breakpoint ${bp_location2} message] } {
+    gdb_test "cont" "Breakpoint .*, ${bp_location2_regexp}.*" \
+	"going to second breakpoint"
 }
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location2_regexp}.*" "going to second breakpoint"
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 81518b9646..d64e9d2ce8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5381,6 +5381,18 @@ proc exec_has_index_section { executable } {
     return 0
 }
 
+# Return 1 if the .debug_info section in EXECUTABLE matches regexp RE.
+
+proc exec_contains_debug_info_string { executable re } {
+    set readelf_program [gdb_find_readelf]
+    set res [catch {exec $readelf_program -wi $executable \
+			| grep -E "$re" }]
+    if { $res == 0 } {
+	return 1
+    }
+    return 0
+}
+
 # Return list with major and minor version of readelf, or an empty list.
 gdb_caching_proc readelf_version {
     set readelf_program [gdb_find_readelf]


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-21 11:02 [PATCH][gdb/testsuite] Fix gdb.go/methods.exp Tom de Vries
@ 2020-02-21 14:54 ` Tom Tromey
  2020-02-21 16:17   ` Tom de Vries
  0 siblings, 1 reply; 7+ messages in thread
From: Tom Tromey @ 2020-02-21 14:54 UTC (permalink / raw)
  To: Tom de Vries; +Cc: gdb-patches

>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:

Tom> +if { [exec_contains_debug_info_string $binfile \
Tom> +	  "DW_AT_name.*: main.Foo.N6_main.T"] } {

Is there a way to get this information from gdb itself?

Tom> +proc exec_contains_debug_info_string { executable re } {
Tom> +    set readelf_program [gdb_find_readelf]
Tom> +    set res [catch {exec $readelf_program -wi $executable \
Tom> +			| grep -E "$re" }]

If not you should probably find a way to do this with objdump; unless
these tests are already ELF-only for some reason.

Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-21 14:54 ` Tom Tromey
@ 2020-02-21 16:17   ` Tom de Vries
  2020-02-21 18:36     ` Tom Tromey
  0 siblings, 1 reply; 7+ messages in thread
From: Tom de Vries @ 2020-02-21 16:17 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

On 21-02-2020 15:54, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
> 
> Tom> +if { [exec_contains_debug_info_string $binfile \
> Tom> +	  "DW_AT_name.*: main.Foo.N6_main.T"] } {
> 
> Is there a way to get this information from gdb itself?
> 

I managed using maintenance print symbols.

OK for trunk like this?

Thanks,
- Tom


[-- Attachment #2: 0001-gdb-testsuite-Fix-gdb.go-methods.exp.patch --]
[-- Type: text/x-patch, Size: 6721 bytes --]

[gdb/testsuite] Fix gdb.go/methods.exp

With gccgo-6/7, we have:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
XFAIL: gdb.go/methods.exp: going to first breakpoint \
  (the program exited)
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
XFAIL: gdb.go/methods.exp: going to second breakpoint \
  (the program is no longer running)
...

And with gccgo-8/9/10, we have:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
XFAIL: gdb.go/methods.exp: going to first breakpoint
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
XFAIL: gdb.go/methods.exp: going to second breakpoint \
  (the program exited)
...

The first test passes and fails with different messages:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
...
or:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
...
Fix this by removing the explicit pass call and using the message argument for
gdb_breakpoint, for both breakpoint locations.

The setup of the xfails is non-specific:
...
setup_xfail "*-*-*" ;# mangling issues IIRC
...
so let's start with removing these.

The first FAIL with gccgo-6:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
...
is due an incorrect DW_AT_name attribute:
...
    #    <554>   DW_AT_name        : main.Foo.N6_main.T
...
Fix this by recognizing the incorrect attribute, and xfailing the test.

Furthermore, if setting the breakpoint fails, there's not much point in trying
to continue to the breakpoint:
...
FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
FAIL: gdb.go/methods.exp: going to first breakpoint (the program exited)
...
Fix this by skipping the second test if the first one fails, also for the
second breakpoint.

With gccgo-10, we manage to set the first breakpoint, but continuing to
breakpoint test fails:
...
PASS: gdb.go/methods.exp: setting breakpoint 1
FAIL: gdb.go/methods.exp: going to first breakpoint
...
This is due to an incorrect regexp, requiring a colon in front of the
breakpoint location.  Fix this for both breakpoints.

Setting the second breakpoint fails:
...
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
...
presumably because the breakpoint location "(*main.T).Bar" does not follow the
naming convention explained at https://golang.org/doc/gdb#Naming.  Fix this by
updating the breakpoint location to "main.(*T).Bar".

Still this test fails, for gccgo-6/7 because of an incorrect DW_AT_name
attribute:
...
    # <529>   DW_AT_name        : main.Bar.pN6_main.T
...
and for gccgo-8/9/10 because of incorrect DW_AT_name/DW_AT_linkage_name
attributes (filed as gcc PR93866):
...
    #    <6e5>   DW_AT_name        : main.Bar..1main.T
    #    <6ec>   DW_AT_linkage_name: main.T.Bar
..
Add xfails for both of these.

All in all, now we have with gccgo-6/7:
...
XFAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
XFAIL: gdb.go/methods.exp: setting breakpoint at main.(*T).Bar
...
and with gccgo-8/9/10, we have:
...
PASS: gdb.go/methods.exp: setting breakpoint at main.T.Foo
PASS: gdb.go/methods.exp: going to first breakpoint
XFAIL: gdb.go/methods.exp: setting breakpoint at main.(*T).Bar
...

Tested on x86_64-linux with gccgo-6/7/8/9/10.

gdb/testsuite/ChangeLog:

2020-02-21  Tom de Vries  <tdevries@suse.de>

	PR go/18926
	* lib/gdb.exp (bp_location2/bp_location2_regexp): Fix.
	Remove blanket xfails.  Use message argument for gdb_breakpoint.
	Make continuing to breakpoint test conditional on setting breakpoint.
	Fix continuing to breakpoint regexp.  Add xfails for gccgo-6/7
	DW_AT_name attribute.  Add xfail for GCC PR93866.

---
 gdb/testsuite/gdb.go/methods.exp | 75 ++++++++++++++++++++++++++++++++++------
 1 file changed, 65 insertions(+), 10 deletions(-)

diff --git a/gdb/testsuite/gdb.go/methods.exp b/gdb/testsuite/gdb.go/methods.exp
index e698cf378f..b24ee14cf2 100644
--- a/gdb/testsuite/gdb.go/methods.exp
+++ b/gdb/testsuite/gdb.go/methods.exp
@@ -29,22 +29,77 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug go}]
 }
 
 set bp_location1 {main.T.Foo}
-set bp_location2 {(*main.T).Bar}
-set bp_location2_regexp {\(*main.T\).Bar}
+set bp_location2 {main.(*T).Bar}
+set bp_location2_regexp {main.\(\*T\).Bar}
 
 if { [go_runto_main] < 0 } {
     untested "could not run to main"
     return -1
 }
 
-if { [gdb_breakpoint ${bp_location1}] } {
-    pass "setting breakpoint 1"
+set found_wrong_foo 0
+set found_wrong_bar 0
+gdb_test_multiple "maintenance print symbols" "" {
+    -re "^\r\n void main.Foo.N6_main.T\[^\r\n\]*(?=\r\n)" {
+	set found_wrong_foo 1
+	exp_continue
+    }
+    -re "^\r\n void main.Bar.pN6_main.T\[^\r\n\]*(?=\r\n)" {
+	set found_wrong_bar 1
+	exp_continue
+    }
+    -re "^\r\n void main.T.Bar\[^\r\n\]*(?=\r\n)" {
+	set found_wrong_bar 2
+	exp_continue
+    }
+    -re "\r\n$gdb_prompt $" {
+	pass $gdb_test_name
+    }
+    -re "\r\n\[^\r\n\]*(?=\r\n)" {
+	exp_continue
+    }
 }
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location1}.*" "going to first breakpoint"
 
-if { [gdb_breakpoint ${bp_location2}] } {
-    pass "setting breakpoint 2"
+if { $found_wrong_foo } {
+    # We have with gccgo-6/7:
+    # <1><553>: Abbrev Number: 21 (DW_TAG_subprogram)
+    #    <554>   DW_AT_name        : main.Foo.N6_main.T
+    setup_xfail "*-*-*"
+} else {
+    # We have with gccgo-8/9/10:
+    # <1><1e24>: Abbrev Number: 40 (DW_TAG_subprogram)
+    #    <1e25>   DW_AT_name        : main.Foo.main.T
+    #    <1e2c>   DW_AT_linkage_name: main.T.Foo
+
+    # For reference: with go1.11.13:
+    # <1><6c46b>: Abbrev Number: 2 (DW_TAG_subprogram)
+    #    <6c46c>   DW_AT_name        : main.T.Foo
+}
+
+if { [gdb_breakpoint ${bp_location1} message]} {
+    gdb_test "cont" "Breakpoint .*, ${bp_location1}.*" \
+	"going to first breakpoint"
+}
+
+if { $found_wrong_bar == 1 } {
+    # We have with gccgo-6/7:
+    # <1><528>: Abbrev Number: 19 (DW_TAG_subprogram)
+    # <529>   DW_AT_name        : main.Bar.pN6_main.T
+    setup_xfail "*-*-*"
+} elseif { $found_wrong_bar == 2 } {
+    # We have with gccgo-8/9/10:
+    # <1><6e4>: Abbrev Number: 24 (DW_TAG_subprogram)
+    #    <6e5>   DW_AT_name        : main.Bar..1main.T
+    #    <6ec>   DW_AT_linkage_name: main.T.Bar
+    # xfail for GCC PR93866
+    setup_xfail "*-*-*"
+} else {
+    # For reference: with go1.11.13:
+    # <1><6c49a>: Abbrev Number: 2 (DW_TAG_subprogram)
+    #    <6c49b>   DW_AT_name        : main.(*T).Bar
+ }
+
+if { [gdb_breakpoint ${bp_location2} message] } {
+    gdb_test "cont" "Breakpoint .*, ${bp_location2_regexp}.*" \
+	"going to second breakpoint"
 }
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location2_regexp}.*" "going to second breakpoint"

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-21 16:17   ` Tom de Vries
@ 2020-02-21 18:36     ` Tom Tromey
  2020-02-25  7:23       ` Tom de Vries
  0 siblings, 1 reply; 7+ messages in thread
From: Tom Tromey @ 2020-02-21 18:36 UTC (permalink / raw)
  To: Tom de Vries; +Cc: Tom Tromey, gdb-patches

>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:

Tom> I managed using maintenance print symbols.

Tom> OK for trunk like this?

Yes, thank you.

Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-21 18:36     ` Tom Tromey
@ 2020-02-25  7:23       ` Tom de Vries
  2020-02-25  7:24         ` Tom de Vries
  0 siblings, 1 reply; 7+ messages in thread
From: Tom de Vries @ 2020-02-25  7:23 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

On 21-02-2020 19:36, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
> 
> Tom> I managed using maintenance print symbols.
> 
> Tom> OK for trunk like this?
> 
> Yes, thank you.
> 

The gcc PR for which I added the xfail was closed, so this updates the
gdb test-case.

Committed as obvious.

Thanks,
- Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-25  7:23       ` Tom de Vries
@ 2020-02-25  7:24         ` Tom de Vries
  2020-02-25 13:07           ` Tom Tromey
  0 siblings, 1 reply; 7+ messages in thread
From: Tom de Vries @ 2020-02-25  7:24 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 392 bytes --]

[Fix ENOPATCH]

On 25-02-2020 08:23, Tom de Vries wrote:
> On 21-02-2020 19:36, Tom Tromey wrote:
>>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
>>
>> Tom> I managed using maintenance print symbols.
>>
>> Tom> OK for trunk like this?
>>
>> Yes, thank you.
>>
> 
> The gcc PR for which I added the xfail was closed, so this updates the
> gdb test-case.
> 
> Committed as obvious.
> 

[-- Attachment #2: 0001-gdb-testsuite-Remove-gcc-93866-xfail-in-methods.exp.patch --]
[-- Type: text/x-patch, Size: 2336 bytes --]

[gdb/testsuite] Remove gcc/93866 xfail in methods.exp

The test-case gdb.go/methods.exp contains an xfail for PR gcc/93866.

However, that PR has been marked resolved-wontfix, with clarification that the
gccgo symbol names for methods are correct, even if they're not the same as
for gc.

Remove the xfail.

Tested on x86_64-linux with gccgo-10.

gdb/testsuite/ChangeLog:

2020-02-25  Tom de Vries  <tdevries@suse.de>

	PR go/18926
	* gdb.go/methods.exp: Remove gcc/93866 xfail.

---
 gdb/testsuite/gdb.go/methods.exp | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gdb/testsuite/gdb.go/methods.exp b/gdb/testsuite/gdb.go/methods.exp
index b24ee14cf2..068212044c 100644
--- a/gdb/testsuite/gdb.go/methods.exp
+++ b/gdb/testsuite/gdb.go/methods.exp
@@ -29,8 +29,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug go}]
 }
 
 set bp_location1 {main.T.Foo}
-set bp_location2 {main.(*T).Bar}
-set bp_location2_regexp {main.\(\*T\).Bar}
+set bp_location2 {main.T.Bar}
 
 if { [go_runto_main] < 0 } {
     untested "could not run to main"
@@ -49,7 +48,6 @@ gdb_test_multiple "maintenance print symbols" "" {
 	exp_continue
     }
     -re "^\r\n void main.T.Bar\[^\r\n\]*(?=\r\n)" {
-	set found_wrong_bar 2
 	exp_continue
     }
     -re "\r\n$gdb_prompt $" {
@@ -86,20 +84,21 @@ if { $found_wrong_bar == 1 } {
     # <1><528>: Abbrev Number: 19 (DW_TAG_subprogram)
     # <529>   DW_AT_name        : main.Bar.pN6_main.T
     setup_xfail "*-*-*"
-} elseif { $found_wrong_bar == 2 } {
+} else {
     # We have with gccgo-8/9/10:
     # <1><6e4>: Abbrev Number: 24 (DW_TAG_subprogram)
     #    <6e5>   DW_AT_name        : main.Bar..1main.T
     #    <6ec>   DW_AT_linkage_name: main.T.Bar
-    # xfail for GCC PR93866
-    setup_xfail "*-*-*"
-} else {
+
     # For reference: with go1.11.13:
     # <1><6c49a>: Abbrev Number: 2 (DW_TAG_subprogram)
     #    <6c49b>   DW_AT_name        : main.(*T).Bar
- }
+
+    # It has been clarified in PR gcc/93866 that it's ok that symbols names
+    # diverge between gc and gccgo.  So, we accept the main.T.Bar as valid.
+}
 
 if { [gdb_breakpoint ${bp_location2} message] } {
-    gdb_test "cont" "Breakpoint .*, ${bp_location2_regexp}.*" \
+    gdb_test "cont" "Breakpoint .*, ${bp_location2}.*" \
 	"going to second breakpoint"
 }

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][gdb/testsuite] Fix gdb.go/methods.exp
  2020-02-25  7:24         ` Tom de Vries
@ 2020-02-25 13:07           ` Tom Tromey
  0 siblings, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2020-02-25 13:07 UTC (permalink / raw)
  To: Tom de Vries; +Cc: Tom Tromey, gdb-patches

>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:

Tom> 2020-02-25  Tom de Vries  <tdevries@suse.de>

Tom> 	PR go/18926
Tom> 	* gdb.go/methods.exp: Remove gcc/93866 xfail.

Thanks, looks good to me.

Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-02-25 13:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21 11:02 [PATCH][gdb/testsuite] Fix gdb.go/methods.exp Tom de Vries
2020-02-21 14:54 ` Tom Tromey
2020-02-21 16:17   ` Tom de Vries
2020-02-21 18:36     ` Tom Tromey
2020-02-25  7:23       ` Tom de Vries
2020-02-25  7:24         ` Tom de Vries
2020-02-25 13:07           ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox