[Bug testsuite/33321] [gdb] FAIL: gdb.python/py-color-pagination.exp: type=color: mode=write: color-fill write

cvs-commit at gcc dot gnu.org sourceware-bugzilla@sourceware.org
Wed Aug 27 10:19:19 GMT 2025


https://sourceware.org/bugzilla/show_bug.cgi?id=33321

--- Comment #12 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Andrew Burgess <aburgess@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17e65798e466913f384e7a568d991124798ecb4

commit e17e65798e466913f384e7a568d991124798ecb4
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Tue Aug 26 13:17:51 2025 +0100

    gdb/testsuite: work around empty substring bug in expect

    There is a bug in expect, see:

      https://sourceforge.net/p/expect/patches/26/

    which causes empty substring matches from a regexp to instead return
    the complete input buffer.  To reproduce this bug, try this command:

      expect -c 'spawn sh -c "echo -n -e \"abc\""; \
                expect -re "(a?)(a)(bc)"; \
                puts "\n"; \
                for { set i 1 } { $i < 4 } { incr i } { \
                  puts -nonewline "($i): \""; \
                  puts -nonewline $expect_out($i,string); \
                  puts "\"" \
                }'

    For a working expect the output looks like:

      spawn sh -c echo -n -e "abc"
      abc

      (1): ""
      (2): "a"
      (3): "bc"

    But for a broken expect the output looks like:

      spawn sh -c echo -n -e "abc"
      abc

      (1): "abc"
      (2): "a"
      (3): "bc"

    Notice that (1) is now returning the complete input buffer rather than
    the empty string, this is wrong.

    This is not the first time this bug has impacted GDB's testsuite,
    this commit seems to be working around the same problem:

      commit e579b537353cd91cb8fac1eaeb69901d4936766f
      Date:   Sat Aug 16 20:32:37 2025 +0200

          [gdb/testsuite] Fix TUI tests on freebsd

    I recently pushed this commit:

      commit 3825c972a636852600b47c242826313f4b9963b8
      Date:   Wed Jun 18 15:02:29 2025 +0100

          gdb: allow gdb.Color to work correctly with pagination

    Which added gdb.python/py-color-pagination.exp.  Bug PR gdb/33321 was
    then created as the test was failing on some hosts.  Turns out, this
    is same expect bug.

    The fix presented here is the same as for e579b537353cd91cb8, avoid
    using optional regexp substrings at the start of a regexp, and instead
    use two separate regexp patterns.  With this change in place, the test
    now passes on all hosts.

    There's no change in what is being tested after this commit.

    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33321

    Approved-By: Tom de Vries <tdevries@suse.de>

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Gdb-prs mailing list