[PATCH] [gdb/testsuite] Fix gdb.python/py-mi-cmd.exp

Tom de Vries <[email protected]> Tue, 4 Aug 2026 17:31:50 +0200
Newsgroups gmane.comp.gdb.patches
Message-ID <[email protected]>
On Fedora Rawhide aarch64-linux (using Python 3.15.0b4), with test-case
gdb.python/py-mi-cmd.exp I ran into:
...
Expecting: ^(-pycmd bk3[^M
]+)?(&"TypeError.*: __repr__ returned non-string \(type BadKey\).."^M
\^error,msg="Error occurred in Python: __repr__ returned non-string \(type BadKey\)"[^M
]+[(]gdb[)] ^M
[ ]*)
-pycmd bk3^M
&"TypeError: ReallyBadKey.__repr__() must return a str, not BadKey\n"^M
^error,msg="Error occurred in Python: ReallyBadKey.__repr__() must return a str, not BadKey"^M
(gdb) ^M
FAIL: $exp: -pycmd bk3 (unexpected output)
...

Fix this by updating the regexp.

Tested with aarch64-linux (Python 3.15.0b4) and x86_64-linux (Python 3.13.14).
---
 gdb/testsuite/gdb.python/py-mi-cmd.exp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gdb/testsuite/gdb.python/py-mi-cmd.exp b/gdb/testsuite/gdb.python/py-mi-cmd.exp
index b66a73c331f..3c57a7ae322 100644
--- a/gdb/testsuite/gdb.python/py-mi-cmd.exp
+++ b/gdb/testsuite/gdb.python/py-mi-cmd.exp
@@ -68,10 +68,19 @@ mi_gdb_test "-pycmd bk2" \
     "\\^error,msg=\"Error occurred in Python: non-string object used as key: 1\"" \
     "-pycmd bk2"
 
+set re_msg \
+    [string cat \
+	 "(" \
+	 [string_to_regexp {__repr__ returned non-string (type BadKey)}] \
+	 "|" \
+	 [string_to_regexp \
+	      {ReallyBadKey.__repr__() must return a str, not BadKey}] \
+	 ")"]
 mi_gdb_test "-pycmd bk3" \
-    [multi_line \
-	 "&\"TypeError.*: __repr__ returned non-string \\(type BadKey\\)..\"" \
-	 "\\^error,msg=\"Error occurred in Python: __repr__ returned non-string \\(type BadKey\\)\""] \
+    [subst_vars \
+	 [multi_line \
+	      {&"TypeError.*: $re_msg\\n"} \
+	      {\^error,msg="Error occurred in Python: $re_msg"}]] \
     "-pycmd bk3"
 
 mi_gdb_test "-pycmd tpl" \

base-commit: 471130b39c03623ec6d78ece377ff4da3f6bfe7b
-- 
2.51.0