| status | osh | osh-cpp | |
| pass | 15 | 10 | |
| FAIL | 1 | 6 | |
| total | 16 | 16 | |
| case | osh | osh-cpp | description |
| 0 | pass | FAIL | cd accepts a block, runs it in different dir |
| details | |||
| 1 | pass | pass | cd with block: requires explicit command |
| 2 | pass | pass | cd passed block with return 1 |
| 3 | FAIL | FAIL | cd passed a block defined in a different scope |
| details | details | ||
| 4 | pass | FAIL | io->eval() and io.captureStdout()/io.captureAll() passed a block in different scope |
| details | |||
| 5 | pass | pass | block doesn't have its own scope |
| 6 | pass | FAIL | redirects allowed in words, typed args, and after block |
| details | |||
| 7 | pass | FAIL | block literal in expression mode: ^(echo $PWD) |
| details | |||
| 8 | pass | FAIL | block arg as typed expression |
| details | |||
| 9 | pass | pass | Pass invalid typed args |
| 10 | pass | pass | Pass too many typed args |
| 11 | pass | pass | 'builtin' and 'command' with block |
| 12 | pass | pass | Consistency: Exit Status and Blocks |
| 13 | pass | pass | Consistency: Unwanted Blocks Are Errors |
| 14 | pass | pass | Block with Bare Assignments |
| 15 | pass | pass | Proc that doesn't take a block |
25 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
| osh-cpp | 0 cd accepts a block, runs it in different dir [osh-cpp stdout] Expected '/\nOLDPWD=\ndone\nPWD=/tmp\npwd builtin: /tmp\n' Got '/\nOLDPWD=\ndone\n' [osh-cpp status] Expected 0 Got 2 stdout: / OLDPWD= donestderr: write --sep ' ' pwd builtin: $(pwd)
^
[ stdin ]:13: Invalid word while parsing command list
|
| osh | 3 cd passed a block defined in a different scope [osh status] Expected 0 Got 1 stdout: stderr: var b = ^(echo "i = $i")
^~
[ stdin ]:9: fatal: Undefined variable 'i'
|
| osh-cpp | 3 cd passed a block defined in a different scope [osh-cpp status] Expected 0 Got 2 stdout: stderr: var b = ^(echo "i = $i")
^
[ stdin ]:9: Invalid word while parsing command list
|
| osh-cpp | 4 io->eval() and io.captureStdout()/io.captureAll() passed a block in different scope [osh-cpp stdout] Expected 'i = 42\ni = 42\n(Dict) {"x":"x"}\nstdout i = 42\nstdout i = 42\n\n' Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: var b = ^(var x = 'x'; echo "i = $i")
^
[ stdin ]:19: Invalid word while parsing command list
|
| osh-cpp | 6 redirects allowed in words, typed args, and after block [osh-cpp stdout] Expected '1 /tmp\n2 /tmp\n3 /tmp\n4 /tmp\n' Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: cd /tmp >>out (; ; ^(echo 2 $PWD))
^
[ stdin ]:10: Invalid word while parsing command list
|
| osh-cpp | 7 block literal in expression mode: ^(echo $PWD) [osh-cpp stdout] Expected '1\none\ntwo\n' Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: const myblock = ^(echo $PWD | wc -l)
^
[ stdin ]:3: Invalid word while parsing command list
|
| osh-cpp | 8 block arg as typed expression [osh-cpp stdout] Expected '/tmp\n/tmp\n' Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: cd /tmp (; ; ^(echo $PWD))
^
[ stdin ]:3: Invalid word while parsing command list
|