This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix test always passing in python/py-linetable.exp


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]