From: Tom de Vries Date: Sat, 16 Aug 2025 18:32:37 +0000 (+0200) Subject: [gdb/testsuite] Fix TUI tests on freebsd X-Git-Tag: gdb-17-branchpoint~279 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e579b537353cd91cb8;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Fix TUI tests on freebsd While re-testing the TUI tests on x86_64-freebsd, I found that commit 06a53717f7c ("[gdb/testsuite] Handle unrecognized escape sequences better in tuiterm") broke most test-cases. Fix this by rewriting this gdb_test_multiple clause: ... -re "^($re_csi_prefix?)($re_csi_args*)($re_csi_cmd)" { ... into: ... -re "^($re_csi_cmd)" { ... -re "^($re_csi_args*)($re_csi_cmd)" { ... -re "^($re_csi_prefix?)($re_csi_args*)($re_csi_cmd)" { ... Tested on x86_64-linux and x86_64-freebsd. --- diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp index a084b431c55..e1af2231b94 100644 --- a/gdb/testsuite/lib/tuiterm.exp +++ b/gdb/testsuite/lib/tuiterm.exp @@ -1078,19 +1078,25 @@ proc Term::accept_gdb_output { {warn 1} } { set re_csi_args {[0-9;]} set re_csi_cmd {[a-zA-Z@`]} gdb_expect { + -re "^($re_csi_cmd)" { + set cmd $expect_out(1,string) + _log "wait_for: _csi_$cmd" + eval _csi_$cmd + } + -re "^($re_csi_args*)($re_csi_cmd)" { + set params [split $expect_out(1,string) ";"] + set cmd $expect_out(2,string) + _log "wait_for: _csi_$cmd <<<$params>>>" + eval _csi_$cmd $params + } -re "^($re_csi_prefix?)($re_csi_args*)($re_csi_cmd)" { set prefix $expect_out(1,string) - set cmd $expect_out(3,string) set params [split $expect_out(2,string) ";"] - if { $prefix == "" } { - _log "wait_for: _csi_$cmd <<<$expect_out(1,string)>>>" - eval _csi_$cmd $params - } else { - scan $prefix %c val - set hexval [format "%02x" $val] - _log "wait_for: _csi_0x${hexval}_$cmd <<<$expect_out(1,string)>>>" - eval _csi_0x${hexval}_$cmd $params - } + set cmd $expect_out(3,string) + scan $prefix %c val + set hexval [format "%02x" $val] + _log "wait_for: _csi_0x${hexval}_$cmd <<<$expect_out(1,string)>>>" + eval _csi_0x${hexval}_$cmd $params } timeout {