| case | dash | bash | mksh | osh | osh_ALT | description |
| 0 | pass | pass | pass | pass | pass | wait with nothing to wait for |
| 1 | ok | pass | ok | pass | pass | wait -n with nothing to wait for |
| details | details | |||||
| 2 | ok | pass | pass | pass | pass | wait with invalid job ID |
| details | ||||||
| 3 | ok | pass | pass | pass | pass | wait with invalid PID |
| details | ||||||
| 4 | pass | pass | pass | pass | pass | Builtin in background |
| 5 | pass | pass | pass | pass | pass | External command in background |
| 6 | pass | pass | pass | pass | pass | Pipeline in Background |
| 7 | N-I | BUG | N-I | pass | FAIL | Wait sets PIPESTATUS |
| details | details | details | details | |||
| 8 | pass | pass | pass | pass | pass | Brace group in background, wait all |
| 9 | pass | pass | pass | pass | pass | Wait on background process PID |
| 10 | pass | pass | pass | pass | pass | Wait on multiple specific IDs returns last status |
| 11 | N-I | pass | N-I | pass | pass | wait -n |
| details | details | |||||
| 12 | pass | pass | pass | pass | pass | Async for loop |
| 13 | pass | pass | pass | pass | pass | Background process doesn't affect parent |
60 passed, 4 ok, 4 known unimplemented, 1 known bugs, 0 failed, 0 skipped
| dash | 1 wait -n with nothing to wait for stdout: stderr: /bin/dash: 1: wait: Illegal option -n |
| mksh | 1 wait -n with nothing to wait for stdout: stderr: /bin/mksh: <stdin>[1]: wait: -n: unknown option |
| dash | 2 wait with invalid job ID stdout: stderr: /bin/dash: 1: wait: No such job: %nonexistent |
| dash | 3 wait with invalid PID stdout: stderr: /bin/dash: 1: wait: No such job: %nonexistent |
| dash | 7 Wait sets PIPESTATUS stdout: stderr: /bin/dash: 2: Bad substitution dash: echo: I/O error |
| bash | 7 Wait sets PIPESTATUS stdout: pipestatus= status=99 pipestatus=0stderr: /bin/bash: line 1: echo: write error: Broken pipe |
| mksh | 7 Wait sets PIPESTATUS stdout: pipestatus=0 status=99 pipestatus=0stderr: |
| osh_ALT | 7 Wait sets PIPESTATUS [osh_ALT stdout] Expected u'pipestatus=\nstatus=99\npipestatus=55 99\n', got 'pipestatus=\nstatus=99\npipestatus=1 99\n' stdout: pipestatus= status=99 pipestatus=1 99stderr: Started background pipeline with job ID 5362
Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 596, in _Dispatch
status = self._RunJobInBackground(node.child)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 529, in _RunJobInBackground
job_id = pi.Start(self.waiter)
File "/home/andy/git/oil/bin/../core/process.py", line 484, in Start
pid = proc.Start()
File "/home/andy/git/oil/bin/../core/process.py", line 398, in Start
self.thunk.Run()
File "/home/andy/git/oil/bin/../core/process.py", line 294, in Run
status = self.ex.Execute(self.node, fork_external=False)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 594, in _Dispatch
status = self._Execute(node.child)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 584, in _Dispatch
status = self._RunSimpleCommand(argv, environ, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 473, in _RunSimpleCommand
status = self._RunBuiltin(builtin_id, argv)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 208, in _RunBuiltin
status = builtin.Echo(argv)
File "/home/andy/git/oil/bin/../core/builtin.py", line 238, in Echo
sys.stdout.flush()
IOError: [Errno 32] Broken pipe
JobState WhenDone 99
|
| dash | 11 wait -n stdout: status=2 status=2stderr: /bin/dash: 3: wait: Illegal option -n /bin/dash: 5: wait: Illegal option -n |
| mksh | 11 wait -n stdout: status=1 status=1stderr: /bin/mksh: <stdin>[3]: wait: -n: unknown option /bin/mksh: <stdin>[5]: wait: -n: unknown option |