| status | osh | osh-cpp | |
| pass | 6 | 6 | |
| BUG-2 | 1 | 1 | |
| FAIL | 3 | 3 | |
| total | 10 | 10 | |
| case | osh | osh-cpp | description |
| 0 | pass | pass | true is not special; prefix assignments don't persist, it can be redefined |
| 1 | pass | pass | Prefix assignments persist after special builtins, like : (set -o posix) |
| 2 | pass | pass | Prefix assignments persist after readonly, but NOT exported (set -o posix) |
| 3 | BUG-2 | BUG-2 | Which shells allow special builtins to be redefined? |
| details | details | ||
| 4 | FAIL | FAIL | Special builtins can't be redefined as shell functions (set -o posix) |
| details | details | ||
| 5 | pass | pass | Non-special builtins CAN be redefined as functions |
| 6 | FAIL | FAIL | Shift is special and fails whole script |
| details | details | ||
| 7 | FAIL | FAIL | set is special and fails whole script, even if using || true |
| details | details | ||
| 8 | pass | pass | bash 'type' gets confused - says 'function', but runs builtin |
| 9 | pass | pass | command, builtin - both can be redefined, not special (regression) |
12 passed, 0 OK, 0 not implemented, 2 BUG, 3 failed, 0 timeouts, 0 cases skipped 3 failed under osh
| osh | 3 Which shells allow special builtins to be redefined? stdout: histderr: |
| osh-cpp | 3 Which shells allow special builtins to be redefined? stdout: histderr: |
| osh | 4 Special builtins can't be redefined as shell functions (set -o posix) [osh stdout] Expected 'hi\n', got 'hi\nhi\n' [osh status] Expected 2, got 0 stdout: hi histderr: |
| osh-cpp | 4 Special builtins can't be redefined as shell functions (set -o posix) [osh-cpp stdout] Expected 'hi\n', got 'hi\nhi\n' [osh-cpp status] Expected 2, got 0 stdout: hi histderr: |
| osh | 6 Shift is special and fails whole script [osh stdout] Expected 'non-zero status\n', got 'status=1\n' stdout: status=1stderr: |
| osh-cpp | 6 Shift is special and fails whole script [osh-cpp stdout] Expected 'non-zero status\n', got 'status=1\n' stdout: status=1stderr: |
| osh | 7 set is special and fails whole script, even if using || true [osh stdout] Expected 'ok\nnon-zero status\n', got 'ok\nshould not get here\n' stdout: ok should not get herestderr: shopt -s invalid_ || true ^~~~~ [ -c flag ]:6: 'shopt' got invalid option 'invalid_' set -o invalid_ || true ^~~ [ -c flag ]:8: 'set' got invalid option 'invalid_' |
| osh-cpp | 7 set is special and fails whole script, even if using || true [osh-cpp stdout] Expected 'ok\nnon-zero status\n', got 'ok\nshould not get here\n' stdout: ok should not get herestderr: shopt -s invalid_ || true ^~~~~ [ -c flag ]:6: 'shopt' got invalid option 'invalid_' set -o invalid_ || true ^~~ [ -c flag ]:8: 'set' got invalid option 'invalid_' |