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 | FAIL | pass | 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, 1 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: |
mksh | 7 Wait sets PIPESTATUS stdout: pipestatus=0 status=99 pipestatus=0stderr: |
osh | 7 Wait sets PIPESTATUS [osh 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 7775 Traceback (most recent call last): File "bin/osh", line 448, in <module> main(sys.argv) File "bin/osh", line 435, in main sys.exit(OilMain(argv)) File "bin/osh", line 418, in OilMain status = OshMain(main_argv) File "bin/osh", line 379, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 951, in Execute status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 915, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 725, in _Dispatch status = self._ExecuteList(node.children) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 944, in _ExecuteList status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 915, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 623, in _Dispatch status = self._RunJobInBackground(node.child) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 556, in _RunJobInBackground job_id = pi.Start(self.waiter) File "/home/andy/git/oil/bin/../core/process.py", line 487, in Start pid = proc.Start() File "/home/andy/git/oil/bin/../core/process.py", line 401, in Start self.thunk.Run() File "/home/andy/git/oil/bin/../core/process.py", line 297, in Run status = self.ex.Execute(self.node, fork_external=False) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 951, in Execute status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 915, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 725, in _Dispatch status = self._ExecuteList(node.children) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 944, in _ExecuteList status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 915, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 621, in _Dispatch status = self._Execute(node.child) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 915, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 612, in _Dispatch status = self._RunSimpleCommand(argv, environ, fork_external) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 500, in _RunSimpleCommand status = self._RunBuiltin(builtin_id, argv) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 229, in _RunBuiltin status = builtin.Echo(argv) File "/home/andy/git/oil/bin/../core/builtin.py", line 246, 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 |