]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Relax type-printer regexp in libstdc++ test suite
authorTom Tromey <tromey@adacore.com>
Thu, 22 Jun 2023 13:35:02 +0000 (07:35 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 29 Jun 2023 13:10:04 +0000 (07:10 -0600)
The libstdc++ test suite checks whether gdb type printers are
available like so:

    set do_whatis_tests [gdb_batch_check "python print(gdb.type_printers)" \
   "\\\[\\\]"]

This regexp assumes that the list of printers is empty.  However,
sometimes it's convenient to ship a gdb that comes with some default
printers, causing this to erroneously report that gdb is "too old".

I believe the intent of this check is to ensure that gdb.type_printers
exists -- not to check its starting value.  This patch changes the
check to accept any Python list as output.

Note that the patch doesn't look for the trailing "]".  I tried this
but in my case the output was too long for expect.  It seemed fine to
just check the start, as the point really is to reject the case where
the command prints an error message.

libstdc++-v3/ChangeLog

* testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
regexp.

libstdc++-v3/testsuite/lib/gdb-test.exp

index 3728a060aa41206cda5554e2561dc484f3cddf94..d8e572ef7b3825103c6b99331180d97cbc847b95 100644 (file)
@@ -107,8 +107,12 @@ proc gdb-test { marker {selector {}} {load_xmethods 0} } {
        }
     }
 
+    # A very old version of gdb will not have the type_printers
+    # global.  Some organizations may ship a gdb that has some default
+    # type printers, so accept any list output as indication that the
+    # global exists.
     set do_whatis_tests [gdb_batch_check "python print(gdb.type_printers)" \
-                          "\\\[\\\]"]
+                          "\\\[.+"]
     if {!$do_whatis_tests} {
        send_log "skipping 'whatis' tests - gdb too old"
     }