<div dir="ltr">Hello,<div><br></div><div>>RE: <span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px">IOError may happen when child already exited but dotest has missed this and tries to exit using 'child.sendline("quit")'</span></div><div>Actually it's OSError (not IOError):</div><div><br></div><div><div>======================================================================</div><div>ERROR: test_lldbmi_tokens (TestMiSyntax.MiSyntaxTestCase)</div><div>   Test that 'lldb-mi --interpreter' echos command tokens.</div><div>----------------------------------------------------------------------</div><div>Traceback (most recent call last):</div><div>  File "/Users/IliaK/p/llvm_delphi/tools/lldb/test/lldbtest.py", line 1770, in tearDown</div><div>    Base.tearDown(self)</div><div>  File "/Users/IliaK/p/llvm_delphi/tools/lldb/test/lldbtest.py", line 1092, in tearDown</div><div>    self.deletePexpectChild()</div><div>  File "/Users/IliaK/p/llvm_delphi/tools/lldb/test/lldbtest.py", line 1074, in deletePexpectChild</div><div>    self.child.sendline('settings set interpreter.prompt-on-quit false')</div><div>  File "/Users/IliaK/p/llvm_delphi/tools/lldb/test/pexpect-2.4/pexpect.py", line 966, in sendline</div><div>    n = self.send(s)</div><div>  File "/Users/IliaK/p/llvm_delphi/tools/lldb/test/pexpect-2.4/pexpect.py", line 958, in send</div><div>    c = os.write(self.child_fd, s)</div><div>OSError: [Errno 5] Input/output error</div><div>Config=x86_64-clang</div></div><div><br></div><div>Therefore I updated lldbtest_ignore_ioerror_on_theardown.patch file.</div><div>Btw, may be better to filter only IO errors from OSError class? It'll look like:</div><div><br></div><div>{code}</div><div>try:</div><div>    ...</div><div>except (ValueError, pexpect.ExceptionPexpect):</div><div>    # child is already terminated</div><div>    pass</div><div>except OSError, e:</div><div>    if <span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">e</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">.</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">errno !</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent"> errno</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">.</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);font-size:14px;line-height:17.8048000335693px;margin:0px;padding:0px;border:0px;vertical-align:baseline;background:transparent">EIO:</span></div><div>        # unexpected exception</div><div>        raise</div><div><div>    # child is already terminated</div></div><div>    pass</div><div>finally:</div><div>    ...</div><div>{code}</div><div><br></div><div>Thanks,</div><div>Ilia</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 16, 2014 at 4:42 PM, Ilia K <span dir="ltr"><<a href="mailto:ki.stfu@gmail.com" target="_blank">ki.stfu@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I found the following:</div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px">IOError may happen when child already exited but dotest has missed this and tries to exit using 'child.sendline("quit")'</span><br></div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px">Also, I clean syntax test. -exec-run no hangs more and 'quit' isn't needed at exit.</span></div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px">Thanks,</span></div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:18.2000007629395px">Ilia</span></div></div>
</blockquote></div></div>