[gdb/python] Fix python selftest with python 3.11
authorTom de Vries <tdevries@suse.de>
Thu, 21 Jul 2022 12:04:41 +0000 (14:04 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 21 Jul 2022 12:04:41 +0000 (14:04 +0200)
With python 3.11 I noticed:
...
$ gdb -q -batch -ex "maint selftest python"
Running selftest python.
Self test failed: self-test failed at gdb/python/python.c:2246
Ran 1 unit tests, 1 failed
...

In more detail:
...
(gdb) p output
$5 = "Traceback (most recent call last):\n  File \"<string>\", line 0, \
  in <module>\nKeyboardInterrupt\n"
(gdb) p ref_output
$6 = "Traceback (most recent call last):\n  File \"<string>\", line 1, \
  in <module>\nKeyboardInterrupt\n"
...

Fix this by also allowing line number 0.

Tested on x86_64-linux.

This should hopefully fix buildbot builder gdb-rawhide-x86_64.

gdb/python/python.c

index 8fa935c828650aac8801d87780aadbf43066a12e..c0312413a730a7852e7ac5f5523001ba9e968ac9 100644 (file)
@@ -2240,10 +2240,13 @@ test_python ()
        SELF_CHECK (*e.message == "Error while executing Python code.");
       }
     SELF_CHECK (saw_exception);
-    std::string ref_output("Traceback (most recent call last):\n"
-                          "  File \"<string>\", line 1, in <module>\n"
-                          "KeyboardInterrupt\n");
-    SELF_CHECK (output == ref_output);
+    std::string ref_output_0 ("Traceback (most recent call last):\n"
+                             "  File \"<string>\", line 0, in <module>\n"
+                             " KeyboardInterrupt\n");
+    std::string ref_output_1 ("Traceback (most recent call last):\n"
+                             "  File \"<string>\", line 1, in <module>\n"
+                             "KeyboardInterrupt\n");
+    SELF_CHECK (output == ref_output_0 || output == ref_output_1);
   }
 
 #undef CMD