gdb/testsuite: fix failure in gdb.python/py-unwind.exp
authorAndrew Burgess <aburgess@redhat.com>
Mon, 3 Apr 2023 09:56:10 +0000 (10:56 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Mon, 3 Apr 2023 09:56:10 +0000 (10:56 +0100)
A potential test failure was introduced with commit:

  commit 6bf5f25bb150c0fbcb125e3ee466ba8f9680310b
  Date:   Wed Mar 8 16:11:30 2023 +0000

      gdb/python: make the gdb.unwinder.Unwinder class more robust

In this commit a new test was added, however the expected output
pattern varies depending on which Python version GDB is linked
against.

Older versions of Python result in output like this:

    (gdb) python global_test_unwinder.name = "foo"
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    AttributeError: can't set attribute
    Error while executing Python code.
    (gdb)

While more recent versions of Python give a similar, but slightly more
verbose error message, like this:

    (gdb) python global_test_unwinder.name = "foo"
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    AttributeError: can't set attribute 'name'
    Error while executing Python code.
    (gdb)

The test was only accepting the first version of the output.  This
commit extends the test pattern so that either version will be
accepted.

gdb/testsuite/gdb.python/py-unwind.exp

index fddf4f15393303ab3743a2fa7ee690cb4cccc7c6..d0a1960058bff27b73e1dc73eea203e5fe69afd6 100644 (file)
@@ -107,7 +107,7 @@ check_info_unwinder "info unwinder after failed disable" on
 # 'register_unwinder'.
 gdb_test "python global_test_unwinder.name = \"foo\"" \
     [multi_line \
-        "AttributeError: can't set attribute" \
+        "AttributeError: can't set attribute(?: 'name')?" \
         "Error while executing Python code\\."]
 check_info_unwinder "info unwinder after failed name change" on