[gdb/testsuite] Fix gdb.guile/scm-breakpoint.exp with guile 3.0

Message ID 20210707094013.GA18240@delia
State New
Headers show
Series
  • [gdb/testsuite] Fix gdb.guile/scm-breakpoint.exp with guile 3.0
Related show

Commit Message

Tom de Vries July 7, 2021, 9:40 a.m.
Hi,

When running test-case gdb.guile/scm-breakpoint.exp on openSUSE Tumbleweed
with guile 3.0, I run into:
...
(gdb) guile (define cp (make-breakpoint "syscall" #:type BP_CATCHPOINT))^M
ERROR: In procedure make-breakpoint:^M
In procedure gdbscm_make_breakpoint: unsupported breakpoint type in \
  position 3: "BP_CATCHPOINT"^M
Error while executing Scheme code.^M
(gdb) FAIL: gdb.guile/scm-breakpoint.exp: test_catchpoints: \
  create a catchpoint via the api
...

The same test passes on openSUSE Leap 15.2 with guile 2.0, where the second
line of the error message starts with the same prefix as the first:
...
ERROR: In procedure gdbscm_make_breakpoint: unsupported breakpoint type in \
  position 3: "BP_CATCHPOINT"^M
...

I observe the same difference in many other tests, f.i.:
...
(gdb) gu (print (value-add i '()))^M
ERROR: In procedure value-add:^M
In procedure gdbscm_value_add: Wrong type argument in position 2: ()^M
Error while executing Scheme code.^M
(gdb) PASS: gdb.guile/scm-math.exp: catch error in guile type conversion
...
but it doesn't cause FAILs anywhere else.

Fix this by updating the regexp to make the "ERROR: " prefix optional.

Tested on x86_64-linux, with both guile 2.0 and 3.0.

Any comments?

Thanks,
- Tom

[gdb/testsuite] Fix gdb.guile/scm-breakpoint.exp with guile 3.0

gdb/testsuite/ChangeLog:

2021-07-07  Tom de Vries  <tdevries@suse.de>

	* gdb.guile/scm-breakpoint.exp: Make additional "ERROR: " prefix in
	exception printing optional.

---
 gdb/testsuite/gdb.guile/scm-breakpoint.exp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Simon Marchi via Gdb-patches July 7, 2021, 9:53 p.m. | #1
Hi Tom,

Tom de Vries <tdevries@suse.de> skribis:

> When running test-case gdb.guile/scm-breakpoint.exp on openSUSE Tumbleweed

> with guile 3.0, I run into:


What version of Guile 3.0 is this?

> Fix this by updating the regexp to make the "ERROR: " prefix optional.


Sounds reasonable to me.  I’m not sure when the “ERROR:” prefix vanished
in Guile.

Thanks,
Ludo’.
Tom de Vries July 8, 2021, 7:36 a.m. | #2
On 7/7/21 11:53 PM, Ludovic Courtès wrote:
> Hi Tom,

> 

> Tom de Vries <tdevries@suse.de> skribis:

> 

>> When running test-case gdb.guile/scm-breakpoint.exp on openSUSE Tumbleweed

>> with guile 3.0, I run into:

> 

> What version of Guile 3.0 is this?

> 


Guile 3.0.7.

>> Fix this by updating the regexp to make the "ERROR: " prefix optional.

> 

> Sounds reasonable to me.  I’m not sure when the “ERROR:” prefix vanished

> in Guile.

> 


Reviewing:
...
$ grep ERROR: gdb/testsuite/gdb.guile/*
...
I found:
...
gdb/testsuite/gdb.guile/scm-error.exp: \
  "(ERROR: )?In procedure \[+\]: Wrong type.*: #f.*" \
...
where the making optional of the ERROR: prefix is from commit
68cf161c24b "guile: Add support for Guile 2.2.".

But I couldn't tell whether that was the same root cause.

Anyway, thanks for the review, I'll commit.

Thanks,
- Tom

Patch

diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.exp b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
index c603af76a33..be898cacaa7 100644
--- a/gdb/testsuite/gdb.guile/scm-breakpoint.exp
+++ b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
@@ -260,10 +260,10 @@  proc_with_prefix test_watchpoints { } {
 	"test watchpoint write"
 
     gdb_test "guile (define wp2 (make-breakpoint \"result\" #:wp-class WP_WRITE #:type 999))" \
-	"ERROR: In procedure gdbscm_make_breakpoint: Out of range: invalid breakpoint type in position 5: 999\r\n.*" \
+	"(ERROR: )?In procedure gdbscm_make_breakpoint: Out of range: invalid breakpoint type in position 5: 999\r\n.*" \
 	"create a breakpoint with an invalid type number"
     gdb_test "guile (define wp2 (make-breakpoint \"result\" #:wp-class WP_WRITE #:type BP_NONE))" \
-	"ERROR: In procedure gdbscm_make_breakpoint: unsupported breakpoint type in position 5: \"BP_NONE\"\r\n.*" \
+	"(ERROR: )?In procedure gdbscm_make_breakpoint: unsupported breakpoint type in position 5: \"BP_NONE\"\r\n.*" \
 	"create a breakpoint with an unsupported type"
 }
 
@@ -533,7 +533,7 @@  proc_with_prefix test_catchpoints {} {
     # Try to create a catchpoint, currently this isn't supported via
     # the guile api.
     gdb_test "guile (define cp (make-breakpoint \"syscall\" #:type BP_CATCHPOINT))" \
-	"ERROR: In procedure gdbscm_make_breakpoint: unsupported breakpoint type in position 3: \"BP_CATCHPOINT\"\r\n.*" \
+	"(ERROR: )?In procedure gdbscm_make_breakpoint: unsupported breakpoint type in position 3: \"BP_CATCHPOINT\"\r\n.*" \
 	"create a catchpoint via the api"
 
     # Setup a catchpoint.