From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2205) id 47EB33858C2C; Fri, 26 May 2023 10:30:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 47EB33858C2C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1685097026; bh=ptk/crit4yn+5nlBQG6/BeKPIRZ+XcKTiT988ICbM8c=; h=From:To:Subject:Date:From; b=QlQhmvuu0nOiJwqoyCdh32qkwi24UPYz4a3Ip0uh3/0SpVqkj89oDw00/YB5Kr4Ke gKG6WwD18nkMl2Leuat4yJYfpwru/5eSqU+ySEysZrntQDy/Q8qHX7G0KUyeMlyiG2 YS1RwSbQJi4zJr0A6evYm+iyZ1w/4eynKa9vSkY8= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom de Vries To: gdb-cvs@sourceware.org Subject: [binutils-gdb] [gdb/testsuite] Add test-case gdb.tui/color-prompt.exp X-Act-Checkin: binutils-gdb X-Git-Author: Tom de Vries X-Git-Refname: refs/heads/master X-Git-Oldrev: 52141e2def780c8ff6f4233971f9007e5d712a5d X-Git-Newrev: a3b86780b6cc9d5915a781bef0d901dcc5d9c07f Message-Id: <20230526103026.47EB33858C2C@sourceware.org> Date: Fri, 26 May 2023 10:30:26 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Da3b86780b6cc= 9d5915a781bef0d901dcc5d9c07f commit a3b86780b6cc9d5915a781bef0d901dcc5d9c07f Author: Tom de Vries Date: Fri May 26 12:30:24 2023 +0200 [gdb/testsuite] Add test-case gdb.tui/color-prompt.exp =20 Add a test-case that sets a prompt with color in TUI. =20 The line containing the prompt is shown by get_line_with_attrs as follo= ws: ... (gdb) ... =20 The 31 means red, but only for foreground colors, for background colors= 41 means red. =20 Make this more readable by using color names for both foreground and background, such that we have instead: .... (gdb) ... =20 Tested on x86_64-linux. Diff: --- gdb/testsuite/gdb.tui/color-prompt.exp | 32 +++++++++++++++++++++++++++++++ gdb/testsuite/gdb.tui/tuiterm.exp | 24 ++++++++++++++++++++++- gdb/testsuite/lib/tuiterm.exp | 35 ++++++++++++++++++++++++++++++= ++-- 3 files changed, 88 insertions(+), 3 deletions(-) diff --git a/gdb/testsuite/gdb.tui/color-prompt.exp b/gdb/testsuite/gdb.tui= /color-prompt.exp new file mode 100644 index 00000000000..8482e1b7695 --- /dev/null +++ b/gdb/testsuite/gdb.tui/color-prompt.exp @@ -0,0 +1,32 @@ +# Copyright 2023 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Check using a prompt with color in TUI. + +tuiterm_env + +Term::clean_restart 24 80 + +# Set colored prompt. +if {![Term::enter_tui]} { + unsupported "TUI not supported" + return +} + +Term::command "set prompt \\033\[31m(gdb) \\033\[0m" + +set line [Term::get_line_with_attrs $Term::_cur_row] +gdb_assert { [regexp "^$gdb_prompt *$" $line] } \ + "prompt with color" diff --git a/gdb/testsuite/gdb.tui/tuiterm.exp b/gdb/testsuite/gdb.tui/tuit= erm.exp index bccb7ef445a..c1751418130 100644 --- a/gdb/testsuite/gdb.tui/tuiterm.exp +++ b/gdb/testsuite/gdb.tui/tuiterm.exp @@ -699,8 +699,30 @@ proc test_attrs {} { 5 1 25 0 } + fg { + 30 black + 31 red + 32 green + 33 yellow + 34 blue + 35 magenta + 36 cyan + 37 white + 39 default + } + bg { + 40 black + 41 red + 42 green + 43 yellow + 44 blue + 45 magenta + 46 cyan + 47 white + 49 default + } } { - setup_terminal 8 1 + setup_terminal 12 1 set re "" foreach { arg val } $vals { Term::_insert "a" diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp index 90b885d7ab4..b7c877593b7 100644 --- a/gdb/testsuite/lib/tuiterm.exp +++ b/gdb/testsuite/lib/tuiterm.exp @@ -561,6 +561,37 @@ namespace eval Term { } } =20 + # Translate the color numbers as used in proc _csi_m to a name. + proc _color_attr { n } { + switch -exact -- $n { + 0 { + return black + } + 1 { + return red + } + 2 { + return green + } + 3 { + return yellow + } + 4 { + return blue + } + 5 { + return magenta + } + 6 { + return cyan + } + 7 { + return white + } + default { error "unsupported color number: $n" } + } + } + # Select Graphic Rendition. # # https://vt100.net/docs/vt510-rm/SGR.html @@ -607,13 +638,13 @@ namespace eval Term { set _attrs(invisible) 0 } 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 { - set _attrs(fg) $item + set _attrs(fg) [_color_attr [expr $item - 30]] } 39 { set _attrs(fg) default } 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 { - set _attrs(bg) $item + set _attrs(bg) [_color_attr [expr $item - 40]] } 49 { set _attrs(bg) default