<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Jan 13, 2016 at 10:25 AM Enrico Granata <<a href="mailto:egranata@apple.com">egranata@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div>On Jan 13, 2016, at 10:21 AM, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:</div><br><div><div dir="ltr"><div><br></div><div>On Wed, Jan 13, 2016 at 10:15 AM Enrico Granata via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:<br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+<br>
+class CommandScriptImmediateOutputTestCase (PExpectTest):<br></blockquote>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.</div></div></div></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>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.</div></div></div></blockquote><div>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)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br><blockquote type="cite"><div><div dir="ltr"><div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+    mydir = TestBase.compute_mydir(__file__)<br>
+<br>
+    def setUp(self):<br>
+        # Call super's setUp().<br>
+        PExpectTest.setUp(self)<br>
+<br>
+    @skipIfRemote # test not remote-ready <a href="http://llvm.org/pr24813" rel="noreferrer" target="_blank">llvm.org/pr24813</a><br>
+    @expectedFlakeyFreeBSD("<a href="http://llvm.org/pr25172" rel="noreferrer" target="_blank">llvm.org/pr25172</a> fails rarely on the buildbot")<br>
+    @expectedFlakeyLinux("<a href="http://llvm.org/pr25172" rel="noreferrer" target="_blank">llvm.org/pr25172</a>")<br></blockquote><div>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?</div></div></div></div>
</div></blockquote></div></div><div style="word-wrap:break-word"><div></div><div><br></div>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<br><div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div></div></div></blockquote><div>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?).</div></div></div>