[Lldb-commits] [lldb] r257644 - Fix an issue where scripted commands would not actually print any of their output if an immediate output file was set in the result object via a Python file object
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Wed Jan 13 11:26:41 PST 2016
Thanks! btw would having the command write its output to a file instead of
stdout solve the pexpect problme as well?
On Wed, Jan 13, 2016 at 11:22 AM Enrico Granata <egranata at apple.com> wrote:
>
> On Jan 13, 2016, at 10:34 AM, Zachary Turner <zturner at google.com> wrote:
>
>
>
> On Wed, Jan 13, 2016 at 10:25 AM Enrico Granata <egranata at apple.com>
> wrote:
>
>> On Jan 13, 2016, at 10:21 AM, Zachary Turner <zturner at google.com> wrote:
>>
>>
>> On Wed, Jan 13, 2016 at 10:15 AM Enrico Granata via lldb-commits <
>> lldb-commits at lists.llvm.org> wrote:
>>
>>> +
>>> +class CommandScriptImmediateOutputTestCase (PExpectTest):
>>>
>> Does the bug that you were trying to fix occur only when using the
>> command_script.py file from the lldb command line? If you load it from
>> within lldb via an LLDB command, does the problem still occur? If the
>> problem you are fixing is not specific to the LLDB command line, I would
>> prefer if you write this not as a pexpect test.
>>
>>
>> I would love to not touch pexpect :-) But in this case, I can’t see a way
>> around it. I am trying to detect whether some text is “physically” printed
>> to stdout. And pexpect seems the most obvious straightforward way to get
>> that to happen. Note that, in this bug, the result object is filled in
>> correctly even if nothing gets printed, so looking at the result won’t
>> quite cut it - it really needs to detect output to stdout.
>>
> You're calling result.SetImmediateOutputFile(sys.__stdout__). Wouldn't it
> work to use a file on the file system here, and then you open that file and
> look at it after running the commands? It wouldn't work in remote cases,
> but it already doesn't work on remote cases anyway (as you point out below)
>
>
>>
>>
>>
>>> +
>>> + mydir = TestBase.compute_mydir(__file__)
>>> +
>>> + def setUp(self):
>>> + # Call super's setUp().
>>> + PExpectTest.setUp(self)
>>> +
>>> + @skipIfRemote # test not remote-ready llvm.org/pr24813
>>> + @expectedFlakeyFreeBSD("llvm.org/pr25172 fails rarely on the
>>> buildbot")
>>> + @expectedFlakeyLinux("llvm.org/pr25172")
>>>
>> Are these necessary? The windows one is necessary (but not if you change
>> this to not being a pexpect test as I've requested above), but why are the
>> other ones necessary?
>>
>>
>> Do we support remote pexpect? As for FreeBSD and Linux, they might not be
>> necessary, but I’d rather much remove them (or let the relevant platform
>> owners) remove them in a separate commit
>>
>> No remote pexpect, so the @skipIfRemote probably needs to be there. But
> I think everyone should be checking in tests enabled by default in the
> widest set of environments possible that you aren't completely sure are
> broken. It should be up to the platform holders to disable broken tests,
> not to enable working tests. Because it's much easier to notice a broken
> test going in than it is to notice a working test went in disabled (because
> who's going to think to test it out?).
>
>
> This is a fair point. I’ll enable those platforms in a subsequent commit
> ASAP
>
>
> Thanks,
> *- Enrico*
> 📩 egranata@.com ☎️ 27683
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160113/9bab92df/attachment-0001.html>
More information about the lldb-commits
mailing list