Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Tom Tromey <tromey@adacore.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Add "style" proc to the test suite
Date: Tue, 14 May 2019 14:59:00 -0000	[thread overview]
Message-ID: <20190514145854.GM2568@embecosm.com> (raw)
In-Reply-To: <20190514140536.11845-1-tromey@adacore.com>

* Tom Tromey <tromey@adacore.com> [2019-05-14 08:05:36 -0600]:

> 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  <tromey@adacore.com>
> 
> 	* 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]

I wonder if there's a nice way to get rid of the \033 here?  Two
thoughts I had was a different proc so we could maybe write this:

  set sofile [styled-string file]

Alternatively, I wondered if we could special case this:

  set sofile [styled ".*" file]

So that if we pass exactly ".*" it is changed into "\[^\033\]+" inside
the style proc.

Just thought it might be nice to try and remove more of the escape
sequences.

Thanks,
Andrew





>  	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"
> +}
> -- 
> 2.20.1
> 


  reply	other threads:[~2019-05-14 14:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 14:05 Tom Tromey
2019-05-14 14:59 ` Andrew Burgess [this message]
2019-05-14 16:31   ` Tom Tromey
2019-05-22 17:59     ` Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190514145854.GM2568@embecosm.com \
    --to=andrew.burgess@embecosm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tromey@adacore.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox