From patchwork Tue May 14 14:05:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 32675 Received: (qmail 2371 invoked by alias); 14 May 2019 14:05:42 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 2362 invoked by uid 89); 14 May 2019 14:05:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=quoted, m*, vers, STYLE X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 14 May 2019 14:05:41 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id C67AA11766B; Tue, 14 May 2019 10:05:39 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id A1YLMgQH+aDp; Tue, 14 May 2019 10:05:39 -0400 (EDT) Received: from murgatroyd.Home (97-122-168-123.hlrn.qwest.net [97.122.168.123]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPSA id 713C911681E; Tue, 14 May 2019 10:05:39 -0400 (EDT) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH] Add "style" proc to the test suite Date: Tue, 14 May 2019 08:05:36 -0600 Message-Id: <20190514140536.11845-1-tromey@adacore.com> MIME-Version: 1.0 This adds a "style" helper proc to the test suite, and updates existing style tests to use it. Thanks to Sergio for the idea. Tested on x86-64 Fedora 29. gdb/testsuite/ChangeLog 2019-05-14 Tom Tromey * gdb.base/info-shared.exp (check_info_shared): Use "style". * gdb.base/style.exp: Use "style". * lib/gdb-utils.exp (style): New proc. --- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/gdb.base/info-shared.exp | 4 ++-- gdb/testsuite/gdb.base/style.exp | 13 +++++++------ gdb/testsuite/lib/gdb-utils.exp | 18 ++++++++++++++++++ 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/gdb/testsuite/gdb.base/info-shared.exp b/gdb/testsuite/gdb.base/info-shared.exp index e1314bf5dd7..42295ce7367 100644 --- a/gdb/testsuite/gdb.base/info-shared.exp +++ b/gdb/testsuite/gdb.base/info-shared.exp @@ -161,8 +161,8 @@ with_test_prefix styled { # Simple test for "info sharedlibrary" styling. Look for styled # addresses and file name. - set addr "\033\\\[34m${hex}\033\\\[m" - set sofile "\033\\\[32m\[^\033\]+\033\\\[m" + set addr [style $hex address] + set sofile [style "\[^\033\]+" file] gdb_test_no_output "set style enabled on" gdb_test "info sharedlibrary" \ "$addr\[ \t\]+$addr.*$sofile\r\n.*" diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp index 369c1f59a88..15de05cdafb 100644 --- a/gdb/testsuite/gdb.base/style.exp +++ b/gdb/testsuite/gdb.base/style.exp @@ -41,10 +41,10 @@ save_vars { env(TERM) } { gdb_test_no_output "set style enabled on" - set main_expr "\033\\\[33mmain\033\\\[m" - set base_file_expr "\033\\\[32m.*style\\.c\033\\\[m" + set main_expr [style main function] + set base_file_expr [style ".*style\\.c" file] set file_expr "$base_file_expr:\[0-9\]" - set arg_expr "\033\\\[36marg.\033\\\[m" + set arg_expr [style "arg." variable] gdb_test "frame" \ "$main_expr.*$arg_expr.*$arg_expr.*$file_expr.*" @@ -58,7 +58,7 @@ save_vars { env(TERM) } { gdb_test "break main" "file $base_file_expr.*" - gdb_test "print &main" " = .* \033\\\[34m$hex\033\\\[m <$main_expr>" + gdb_test "print &main" " = .* [style $hex address] <$main_expr>" # Regression test for a bug where line-wrapping would occur at the # wrong spot with styling. There were different bugs at different @@ -86,11 +86,12 @@ save_vars { env(TERM) } { gdb_exit gdb_spawn - gdb_test "" "\033\\\[35;1mGNU gdb.*\033\\\[m.*" \ + set vers [style "GNU gdb.*" "35;1"] + gdb_test "" "${vers}.*" \ "version is styled" set quoted [string_to_regexp $binfile] gdb_test "file $binfile" \ - "Reading symbols from \033\\\[32m${quoted}\033\\\[m..." \ + "Reading symbols from [style $quoted file]..." \ "filename is styled when loading symbol file" } diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp index 26bbbf593c6..a6567884426 100644 --- a/gdb/testsuite/lib/gdb-utils.exp +++ b/gdb/testsuite/lib/gdb-utils.exp @@ -37,3 +37,21 @@ proc string_to_regexp {str} { regsub -all {[]*+.|(){}^$\[\\]} $str {\\&} result return $result } + +# Wrap STR in an ANSI terminal escape sequences -- one to set the +# style to STYLE, and one to reset the style to the default. The +# return value is suitable for use as a regular expression. + +# STYLE can either be the payload part of an ANSI terminal sequence, +# or a shorthand for one of the gdb standard styles: "file", +# "function", "variable", or "address". + +proc style {str style} { + switch -exact -- $style { + file { set style 32 } + function { set style 33 } + variable { set style 36 } + address { set style 34 } + } + return "\033\\\[${style}m${str}\033\\\[m" +}