49 passed, 2 OK, 5 not implemented, 4 BUG, 24 failed, 0 timeouts, 0 cases skipped
mksh | 0 true is not special; prefix assignments don't persist, it can be redefined stdout: foo= true func foo=barstderr: |
toysh | 1 Prefix assignments persist after special builtins, like : (set -o posix) [toysh stdout] Expected 'foo=bar\nz=\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 1 Prefix assignments persist after special builtins, like : (set -o posix) [sush stdout] Expected 'foo=bar\nz=\n', got 'foo=\nz=\n' stdout: foo= z=stderr: |
brush | 1 Prefix assignments persist after special builtins, like : (set -o posix) [brush stdout] Expected 'foo=bar\nz=\n', got 'foo=\nz=\n' stdout: foo= z=stderr: |
bash | 2 Prefix assignments persist after readonly, but NOT exported (set -o posix) stdout: foo=bar spam=eggs bar Nonestderr: |
toysh | 2 Prefix assignments persist after readonly, but NOT exported (set -o posix) [toysh stdout] Expected 'foo=bar\nspam=eggs\nNone\nNone\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 2 Prefix assignments persist after readonly, but NOT exported (set -o posix) [sush stdout] Expected 'foo=bar\nspam=eggs\nNone\nNone\n', got 'foo=\nspam=eggs\nNone\nNone\n' stdout: foo= spam=eggs None Nonestderr: |
brush | 2 Prefix assignments persist after readonly, but NOT exported (set -o posix) [brush stdout] Expected 'foo=bar\nspam=eggs\nNone\nNone\n', got 'foo=\nspam=eggs\nNone\nNone\n' stdout: foo= spam=eggs None Nonestderr: |
sush | 3 Prefix binding for exec is a special case (versus e.g. readonly) [sush stdout] Expected 'pre1= x= pre2=pre2\n', got 'pre1= x= pre2=\n' stdout: pre1= x= pre2=stderr: |
mksh | 4 exec without args is a special case of the special case in some shells stdout: stderr: FOO=bar |
ksh | 4 exec without args is a special case of the special case in some shells [ksh stderr] Expected 'FOO=\n', got 'FOO=bar\n' stdout: stderr: FOO=bar |
bash | 5 Which shells allow special builtins to be redefined? stdout: eval func echo histderr: |
toysh | 5 Which shells allow special builtins to be redefined? [toysh stdout] Expected 'hi\n', got 'eval func echo hi\n' stdout: eval func echo histderr: |
sush | 5 Which shells allow special builtins to be redefined? [sush stdout] Expected 'hi\n', got 'eval func echo hi\n' stdout: eval func echo histderr: |
bash | 6 Special builtins can't be redefined as shell functions (set -o posix) stdout: histderr: bash: line 9: `eval': is a special builtin |
toysh | 6 Special builtins can't be redefined as shell functions (set -o posix) [toysh stdout] Expected 'hi\nhi\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 6 Special builtins can't be redefined as shell functions (set -o posix) [sush stdout] Expected 'hi\nhi\n', got 'hi\nsh func echo hi\n' stdout: hi sh func echo histderr: |
bash | 8 Shift is special and fails whole script stdout: status=1stderr: bash: line 6: shift: 3: shift count out of range |
toysh | 8 Shift is special and fails whole script [toysh stdout] Expected 'non-zero status\n', got 'status=1\n' stdout: status=1stderr: set: bad -- |
sush | 8 Shift is special and fails whole script [sush stdout] Expected 'non-zero status\n', got 'status=0\n' stdout: status=0stderr: |
brush | 8 Shift is special and fails whole script [brush stdout] Expected 'non-zero status\n', got 'status=2\n' stdout: status=2stderr: |
osh | 8 Shift is special and fails whole script stdout: status=1stderr: |
bash | 9 set is special and fails whole script, even if using || true stdout: ok should not get herestderr: bash: line 6: shopt: invalid_: invalid shell option name bash: line 8: set: invalid_: invalid option name |
toysh | 9 set is special and fails whole script, even if using || true [toysh stdout] Expected 'ok\nnon-zero status\n', got 'ok\nshould not get here\n' stdout: ok should not get herestderr: sh: shopt: No such file or directory set: bad -o invalid_ |
sush | 9 set is special and fails whole script, even if using || true [sush stdout] Expected 'ok\nnon-zero status\n', got 'ok\nshould not get here\n' stdout: ok should not get herestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: shopt: invalid_: not supported yet /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: set: invalid_: invalid option name |
brush | 9 set is special and fails whole script, even if using || true [brush stdout] Expected 'ok\nnon-zero status\n', got 'ok\nshould not get here\n' stdout: ok should not get herestderr: shopt: invalid_: invalid shell option name |
osh | 9 set is special and fails whole script, even if using || true 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_' |
bash | 10 bash 'type' gets confused - says 'function', but runs builtin stdout: TRUE builtin function --- EVAL builtin shell function: echo before posix after posix functionstderr: |
mksh | 10 bash 'type' gets confused - says 'function', but runs builtin stdout: stderr: |
ksh | 10 bash 'type' gets confused - says 'function', but runs builtin [ksh stdout] Expected 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nbefore posix\nafter posix\nbuiltin\n' Got 'TRUE\n---\nEVAL\nbefore posix\nafter posix\n' [ksh status] Expected 0, got 1 stdout: TRUE --- EVAL before posix after posixstderr: E: ksh: <stdin>[4]: whence: -t: unknown option E: ksh: <stdin>[6]: whence: -t: unknown option E: ksh: <stdin>[11]: whence: -t: unknown option E: ksh: <stdin>[20]: whence: -t: unknown option |
toysh | 10 bash 'type' gets confused - says 'function', but runs builtin [toysh stdout] Expected 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nbefore posix\nafter posix\nbuiltin\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 10 bash 'type' gets confused - says 'function', but runs builtin [sush stdout] Expected 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nbefore posix\nafter posix\nbuiltin\n' Got 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nshell function: echo before posix\nshell function: echo after posix\nfunction\n' stdout: TRUE builtin function --- EVAL builtin shell function: echo before posix shell function: echo after posix functionstderr: |
brush | 10 bash 'type' gets confused - says 'function', but runs builtin [brush stdout] Expected 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nbefore posix\nafter posix\nbuiltin\n' Got 'TRUE\nbuiltin\nfunction\n---\nEVAL\nbuiltin\nbefore posix\nafter posix\nfunction\n' stdout: TRUE builtin function --- EVAL builtin before posix after posix functionstderr: |
toysh | 11 command, builtin - both can be redefined, not special (regression) [toysh stdout] Expected 'b\nc\nbuiltin-redef echo b\ncommand-redef echo c\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 11 command, builtin - both can be redefined, not special (regression) [sush stdout] Expected 'b\nc\nbuiltin-redef echo b\ncommand-redef echo c\n' Got 'c\nbuiltin-redef echo b\ncommand-redef echo c\n' stdout: c builtin-redef echo b command-redef echo cstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: builtin: echo: not a shell builtin |