Well, actually on Unix MOST things are files, it was Plan 9 in which that all things are files, IIRC...
Jim > On Jan 14, 2016, at 11:04 AM, Jim Ingham <jing...@apple.com> wrote: > > Yes, on unix all things are files and all files work the same except when > they don't. I'd rather test the thing we ACTUALLY care about, rather than > testing something else and assuming that it is going to work in the case we > care about as well. > > Jim > >> On Jan 14, 2016, at 10:58 AM, Zachary Turner <ztur...@google.com> wrote: >> >> Wouldn't testing with output redirecxted to a file still test that it is >> being streamed as it is obtained rather than a big dump at the end? I mean >> that's what stdout is right? Just a file. If you use a file on the >> filesystem instead, just check the contents of the file after each operation. >> >> On Thu, Jan 14, 2016 at 10:42 AM Jim Ingham <jing...@apple.com> wrote: >> I worry giving up on testing using Python's stdout for the immediate output >> stream. This is a very useful feature, allowing users to make Python based >> commands that produce a bunch of output, and stream the output as it is >> being gathered rather than having the command stall and then dump a bunch of >> text at the end. This isn't speculative, that's how many of the commands >> that the OS X kernel team ships for inspecting kernel state work. >> >> So we really should be testing this feature. Maybe the flakiness on Linux >> is just a pexpect bug, and streaming to stdout would always work correctly >> hooked up to a "real" terminal. But until we know that we should presume >> that it is something in LLDB->Python or in the way we use Python, and keep >> testing it. >> >> If you want to separate the two issues, then it would be fine to write >> another test that just tests the type maps for FILE *, but I still think >> this one is valuable. >> >> Jim >> >>> On Jan 14, 2016, at 10:16 AM, Zachary Turner via lldb-commits >>> <lldb-commits@lists.llvm.org> wrote: >>> >>> How much time do you think it would take to determine whether or not using >>> the file-based approach would work? Because on the surface it sounds >>> fairly straightforward, and fixing it that way would allow us to not have >>> to xfail this on more platforms for reasons that we don't understand. >>> >>> On Thu, Jan 14, 2016 at 10:15 AM Enrico Granata via lldb-commits >>> <lldb-commits@lists.llvm.org> wrote: >>> The log just shows a timeout is happening in pexpect() - which I don’t have >>> a ready explanation for >>> >>> X-failing for now is the proper recourse. But you might want to debug this >>> at some point, since it’s weird behavior. It looks like the command is not >>> even just silently erroring out - from the log you sent it looked stuck >>> somewhere.. >>> >>> Is there any chance you can step through and see where the hang is >>> happening? >>> >>>> On Jan 14, 2016, at 3:03 AM, Tamas Berghammer <tbergham...@google.com> >>>> wrote: >>>> >>>> I XFAIL-ed the test for Linux to get the build bot green again and filed a >>>> bug at https://llvm.org/bugs/show_bug.cgi?id=26139 >>>> >>>> On Thu, Jan 14, 2016 at 2:18 AM Ying Chen via lldb-commits >>>> <lldb-commits@lists.llvm.org> wrote: >>>> Please see attached log file. >>>> >>>> Thanks, >>>> Ying >>>> >>>> On Wed, Jan 13, 2016 at 5:39 PM, Enrico Granata <egran...@apple.com> wrote: >>>> From the buildbot log it’s quite hard to tell what could be going on >>>> >>>> Is there any chance you guys could run the test by hand with the “-t -v” >>>> flags to the dotest.py driver and attach the output of the run? >>>> >>>> That might help figure out where the issue lies >>>> >>>>> On Jan 13, 2016, at 5:35 PM, Ying Chen <chy...@google.com> wrote: >>>>> >>>>> Hello Enrico, >>>>> >>>>> The new test has been failing on Ubuntu buildbot. But it's passing on >>>>> some offline Ubuntu machines, I don't understand what caused the >>>>> difference. >>>>> Could you please help to take a look? >>>>> >>>>> http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/10299 >>>>> >>>>> Thanks, >>>>> Ying >>>>> >>>>> On Wed, Jan 13, 2016 at 11:32 AM, Enrico Granata via lldb-commits >>>>> <lldb-commits@lists.llvm.org> wrote: >>>>> >>>>>> On Jan 13, 2016, at 11:26 AM, Zachary Turner <ztur...@google.com> wrote: >>>>>> >>>>>> Thanks! btw would having the command write its output to a file instead >>>>>> of stdout solve the pexpect problme as well? >>>>>> >>>>> >>>>> That’s possible - but I would need to play with it a little bit to >>>>> convince myself that it really is a faithful reproduction of my original >>>>> issue >>>>> It’ll take me a little while to get to it - stay tuned. >>>>> >>>>>> On Wed, Jan 13, 2016 at 11:22 AM Enrico Granata <egran...@apple.com> >>>>>> wrote: >>>>>> >>>>>>> On Jan 13, 2016, at 10:34 AM, Zachary Turner <ztur...@google.com> wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Jan 13, 2016 at 10:25 AM Enrico Granata <egran...@apple.com> >>>>>>> wrote: >>>>>>>> On Jan 13, 2016, at 10:21 AM, Zachary Turner <ztur...@google.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jan 13, 2016 at 10:15 AM Enrico Granata via lldb-commits >>>>>>>> <lldb-commits@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 >>>>>> >>>>> >>>>> >>>>> Thanks, >>>>> - Enrico >>>>> 📩 egranata@.com ☎️ 27683 >>>>> >>>>> >>>>> _______________________________________________ >>>>> lldb-commits mailing list >>>>> lldb-commits@lists.llvm.org >>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >>>>> >>>>> >>>> >>>> >>>> Thanks, >>>> - Enrico >>>> 📩 egranata@.com ☎️ 27683 >>>> >>>> >>>> _______________________________________________ >>>> lldb-commits mailing list >>>> lldb-commits@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >>> >>> >>> Thanks, >>> - Enrico >>> 📩 egranata@.com ☎️ 27683 >>> >>> _______________________________________________ >>> lldb-commits mailing list >>> lldb-commits@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >>> _______________________________________________ >>> lldb-commits mailing list >>> lldb-commits@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >> > _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits