FYI: [python/Ada] gdb.lookup_type fails to looking primitive type

Message ID 20150121094440.GA24515@adacore.com
State New, archived
Headers

Commit Message

Joel Brobecker Jan. 21, 2015, 9:44 a.m. UTC
  > > Not that I'm expecting anyone to go back and change things,
> > but maybe for future reference it'd be better to print the result
> > and record the expected output, instead of expecting no output.
> > Performing a lookup action, and then expecting no output,
> > is just too confusing to me.
> 
> The only issue I have with that is that I'd like to do something
> whose behavior is defined. Looking at the GDB manual, I can't see
> anything said about what to expect when converting a gdb.Type to
> a string... If we clarify that, I have no problem adding the extra
> "print" in the test.

I tried looking into the code as to what the semantics of printing
the gdb.Type object should be, and couldn't figure it out. It seems
to be printing the type name, but I'm not sure why. So, instead of
waiting for a clarification that may never come, I propose the
following.

gdb/ChangeLog:

        * gdb.python/py-lookup-type.exp (test_lookup_type): Change
        the second test to print the name attribute of value
        returned by the call to gdb.lookup_type, and adjust
        the expected output accordingly.

Tested on x86_64-linux.

Does this change answer your concerns?
  

Comments

Doug Evans Jan. 21, 2015, 5:52 p.m. UTC | #1
On Wed, Jan 21, 2015 at 1:44 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>> > Not that I'm expecting anyone to go back and change things,
>> > but maybe for future reference it'd be better to print the result
>> > and record the expected output, instead of expecting no output.
>> > Performing a lookup action, and then expecting no output,
>> > is just too confusing to me.
>>
>> The only issue I have with that is that I'd like to do something
>> whose behavior is defined. Looking at the GDB manual, I can't see
>> anything said about what to expect when converting a gdb.Type to
>> a string... If we clarify that, I have no problem adding the extra
>> "print" in the test.
>
> I tried looking into the code as to what the semantics of printing
> the gdb.Type object should be, and couldn't figure it out. It seems
> to be printing the type name, but I'm not sure why. So, instead of
> waiting for a clarification that may never come, I propose the
> following.

Ah, I didn't know you were waiting on me.
I think printing the type name is just what was chosen at the time.
That choice is fine by me fwiw.

> gdb/ChangeLog:
>
>         * gdb.python/py-lookup-type.exp (test_lookup_type): Change
>         the second test to print the name attribute of value
>         returned by the call to gdb.lookup_type, and adjust
>         the expected output accordingly.
>
> Tested on x86_64-linux.
>
> Does this change answer your concerns?

There was no need to address anything, but thanks.
I was just making a suggestion for the next time.
[And I mean "suggestion" literally. 1/2 :-)]

The patch is fine by me.
Thanks again.
  
Joel Brobecker Jan. 26, 2015, 4:43 a.m. UTC | #2
> Ah, I didn't know you were waiting on me.
> I think printing the type name is just what was chosen at the time.
> That choice is fine by me fwiw.
> 
> > gdb/ChangeLog:
> >
> >         * gdb.python/py-lookup-type.exp (test_lookup_type): Change
> >         the second test to print the name attribute of value
> >         returned by the call to gdb.lookup_type, and adjust
> >         the expected output accordingly.
> >
> > Tested on x86_64-linux.
> >
> > Does this change answer your concerns?
> 
> There was no need to address anything, but thanks.
> I was just making a suggestion for the next time.
> [And I mean "suggestion" literally. 1/2 :-)]
> 
> The patch is fine by me.
> Thanks again.

Thanks for the feedback. I pushed the patch to master.
  

Patch

From eea862a6a45741d97bca981b7c8356782e02c0a3 Mon Sep 17 00:00:00 2001
From: Joel Brobecker <brobecker@adacore.com>
Date: Wed, 21 Jan 2015 10:29:09 +0100
Subject: [PATCH] check gdb.lookup_type return value in
 gdb.python/py-lookup-type.exp

This further improves this testcase to check the output of
our calls to gdb.lookup_type.

gdb/ChangeLog:

        * gdb.python/py-lookup-type.exp (test_lookup_type): Change
        the second test to print the name attribute of value
        returned by the call to gdb.lookup_type, and adjust
        the expected output accordingly.
---
 gdb/testsuite/gdb.python/py-lookup-type.exp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.python/py-lookup-type.exp b/gdb/testsuite/gdb.python/py-lookup-type.exp
index d8fb9e7..46d6fc6 100644
--- a/gdb/testsuite/gdb.python/py-lookup-type.exp
+++ b/gdb/testsuite/gdb.python/py-lookup-type.exp
@@ -32,7 +32,8 @@  if { [skip_python_tests] } { continue }
 
 proc test_lookup_type { lang type_name } {
     gdb_test_no_output "set language ${lang}"
-    gdb_test_no_output "python gdb.lookup_type('${type_name}')" \
+    gdb_test "python print(gdb.lookup_type('${type_name}').name)" \
+        "${type_name}" \
         "lookup type ${type_name} using language ${lang}"
 }
 
-- 
1.9.1