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).
Approved-By: Tom Tromey <tom@tromey.com>
"\\^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" \