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: [RFA] detect inferior exit in call_function_by_hand


On Thu, Nov 13, 2008 at 4:53 PM, Joel Brobecker <brobecker@adacore.com> wrote:
>> +    send_gdb "set language c\n"
>> +    gdb_expect {
>> +     -re ".*$gdb_prompt $" {}
>> +     timeout { fail "set language c (timeout)" ; return 0; }
>> +    }
>> +
>> +    send_gdb "show language\n"
>> +    gdb_expect {
>> +     -re ".* source language is \"c\".*$gdb_prompt $" {
>> +         pass "set language to \"c\""
>> +         return 1
>> +     }
>> +     -re ".*$gdb_prompt $" {
>> +         fail "setting language to \"c\""
>> +         return 0
>> +     }
>> +     timeout {
>> +         fail "can't show language (timeout)"
>> +         return 0
>> +     }
>> +    }
>
> Generally speaking, we try to avoid send_gdb/gdb_expect, and use
> gdb_test_multiple. I realize that you probably inherited this
> through copy/paste... In any case, I don't think it will necessary
> to rewrite the above, because, Like Pedro, I don't think you need
> the set lang c. The only time when I had to explicitly set the language
> is after attaching to a program - you never know where you might end up,
> and sometimes you find your way into asm frames, for instance. I propose
> you remove this part entirely. That should simplify your testcase and
> it's easy enough to put it back if we discover a case where it's
> really needed.
>
>> +if { ![set_lang_c] } {
>> +    gdb_suppress_tests;
>> +} else {
>> +    if { ![runto_main] } {
>> +     gdb_suppress_tests;
>> +    }
>
> We don't use gdb_suppress_tests anymore. As far as I know, the usual
> way of doing things is to log a FAIL and then return. For instance:
>
>    if ![runto_main] then {
>        fail "Can't run to main"
>        return 0
>    }

In past lives, I've often found it useful to never introduce fails
that don't also have passes - it makes regression reports cleaner:
otherwise tests that failed the previous time but now pass disappear
and the test count has gone down leading one to wonder if there's a
testsuite issue.  In this case it doesn't matter as the gdb testsuite
is all over the map so I'm happy to just go with the flow.


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