[PATCH][Lit] Catch OSError exception when using Popen constructor

Daniel Dunbar daniel at zuster.org
Mon Oct 20 09:16:38 PDT 2014


LGTM, let me know when committed and I can update the package.

 - Daniel

On Mon, Oct 20, 2014 at 8:15 AM, Dan Liew <dan at su-root.co.uk> wrote:

> Hi,
>
> This fixes an issue with lit that I came across on Windows. If the
> command exists but is not a windows executable (for example a python
> script) then lit will give a very unhelpful error message during
> execution. In my case it is unhelpful because there were multiple
> ``RUN:`` lines and I didn't know which command was failing.
>
> Here's an example error message:
>
> ```
> Exception during script execution:
> Traceback (most recent call last):
>   File "C:\Python34\lib\site-packages\lit\run.py", line 166, in
> execute_test
>     result = test.config.test_format.execute(test, self.lit_config)
>   File "C:\Python34\lib\site-packages\lit\formats\shtest.py", line 12, in
> execut
> e
>     self.execute_external)
>   File "C:\Python34\lib\site-packages\lit\TestRunner.py", line 492, in
> executeSh
> Test
>     res = executeScriptInternal(test, litConfig, tmpBase, script, execdir)
>   File "C:\Python34\lib\site-packages\lit\TestRunner.py", line 255, in
> executeSc
> riptInternal
>     exitCode = executeShCmd(cmd, test.config, cwd, results)
>   File "C:\Python34\lib\site-packages\lit\TestRunner.py", line 45, in
> executeShC
> md
>     res = executeShCmd(cmd.rhs, cfg, cwd, results)
>   File "C:\Python34\lib\site-packages\lit\TestRunner.py", line 154, in
> executeSh
> Cmd
>     close_fds = kUseCloseFDs))
>   File "C:\Python34\lib\subprocess.py", line 858, in __init__
>     restore_signals, start_new_session)
>   File "C:\Python34\lib\subprocess.py", line 1111, in _execute_child
>     startupinfo)
> OSError: [WinError 193] %1 is not a valid Win32 application
> ```
>
> The following patch catches OSError exceptions and then raises an
> InternalShellError and now lit gives a much more useful error message
> in my case.
>
> ```
> Command 1:
> "C:\Users\Dan\Documents\foo\foo\utils\OutputCheck\bin\OutputCheck"
>  "-d"
> "C:\Users\Dan\Documents\foo\foo\test_programs\basic\concrete\assert_false.bpl"
> Command 1 Result: 127
> Command 1 Output:
>
>
> Command 1 Stderr:
> Could not create process due to [WinError 193] %1 is not a valid Win32
> application
>
> ```
>
> Is it okay to commit this?
>
> @daniel - If this is okay to commit could you update the lit package on
> PyPi?
>
> Thanks,
> Dan.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141020/fd0d90b0/attachment.html>


More information about the llvm-commits mailing list