This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix test always passing in python/py-linetable.exp
- From: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: Simon Marchi <simon dot marchi at ericsson dot com>
- Cc: <gdb-patches at sourceware dot org>, Phil Muldoon <pmuldoon at redhat dot com>
- Date: Wed, 26 Nov 2014 16:08:51 -0500
- Subject: Re: [PATCH] Fix test always passing in python/py-linetable.exp
- Authentication-results: sourceware.org; auth=none
- References: <1417026912-883-1-git-send-email-simon dot marchi at ericsson dot com>
On Wednesday, November 26 2014, Simon Marchi wrote:
> The following test is found in python/py-linetable.exp:
>
> gdb_test "python print sorted(fset)" \
> "\[20L, 21L, 22L, 24L, 25L, 28L, 29L, 30L, 32L, 33L, 37L, 39L, 40L, 42L, 44L, 45L, 46L\].*" \
> "Test frozen set contains line numbers"
>
> I noticed that it passed when using Python 3, even though it should fail
> because of the missing parentheses for the call print.
>
> There needs to be more escaping of the square brackets. Currently, it is
> interpreted as "any one character from this big list of characters,
> followed by .*". When adding the required amount of backslashes, the
> test starts failing as it should.
Hi Simon,
This fix makes sense to me. Escaping brackets are always a source of
confusion in TCL. Thanks for doing that.
> Moreover, both in Python 2.7 and Python 3.3 the numbers don't have the L
> suffix, so now the test fails because of that. Anybody knows why they
> were there in the first place? I just tested with Python 2.4 and there
> are no Ls.
Yeah, I don't know. My wild guess it that it was a thinko because of
the test just above it:
gdb_test "python list_lines()" \
"L20 A $hex.*L21 A $hex.*L22 A $hex.*L24 A $hex.*L25 A $hex.*L40 A $hex.*L42 A $hex.*L44 A $hex.*L42 A $hex.*L46 A $hex.*" \
"test linetable iterator addr"
Phil?
> gdb/testsuite/ChangeLog:
>
> * gdb.python/py-linetable.exp: Properly escape sorted(fset)
> test expected output. Add parentheses for the call to print.
> Remove L suffix from integers.
Two spaces after periods.
>
> Signed-off-by: Simon Marchi <simon.marchi@ericsson.com>
> ---
> gdb/testsuite/gdb.python/py-linetable.exp | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.python/py-linetable.exp b/gdb/testsuite/gdb.python/py-linetable.exp
> index 351f380..5d9b262 100644
> --- a/gdb/testsuite/gdb.python/py-linetable.exp
> +++ b/gdb/testsuite/gdb.python/py-linetable.exp
> @@ -60,8 +60,8 @@ gdb_test "python print (lt.line(1))" "None" \
> # Test gdb.Linetable.sourcelines ()
> gdb_py_test_silent_cmd "python fset = lt.source_lines()" \
> "Get all source lines into a frozen set" 0
> -gdb_test "python print sorted(fset)" \
> - "\[20L, 21L, 22L, 24L, 25L, 28L, 29L, 30L, 32L, 33L, 37L, 39L, 40L, 42L, 44L, 45L, 46L\].*" \
> +gdb_test "python print (sorted(fset))" \
> + "\\\[20, 21, 22, 24, 25, 28, 29, 30, 32, 33, 37, 39, 40, 42, 44, 45, 46\\\].*" \
> "Test frozen set contains line numbers"
>
> # Test gdb.Linetable.has_line ()
> --
> 2.1.3
Other than that, LGTM (not an approval).
Cheers,
--
Sergio
GPG key ID: 0x65FC5E36
Please send encrypted e-mail if possible
http://sergiodj.net/