status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 3 | 3 | 4 | 3 | 3 | 3 | 2 | 2 | 3 | 7 | |
ok | 4 | 2 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
BUG | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 3 | 0 | 0 | 4 | 5 | 5 | 4 | 0 | |
total | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | ok | N-I | FAIL | BUG | BUG | FAIL | FAIL | FAIL | FAIL | pass | history builtin usage |
details | details | details | details | details | details | details | details | details | |||
1 | ok | ok | FAIL | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | Print shell strings with weird chars: set and printf %q and ${x@Q} |
details | details | details | details | details | details | details | details | details | |||
2 | ok | N-I | FAIL | N-I | ok | FAIL | FAIL | FAIL | FAIL | pass | Print shell strings with normal chars: set and printf %q and ${x@Q} |
details | details | details | details | details | details | details | details | details | |||
3 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | time pipeline |
4 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | shift |
details | |||||||||||
5 | pass | ok | pass | pass | pass | pass | pass | FAIL | FAIL | pass | Shifting too far |
details | details | details | |||||||||
6 | ok | pass | pass | BUG | BUG | FAIL | FAIL | FAIL | pass | pass | Invalid shift argument |
details | details | details | details | details | details |
33 passed, 9 OK, 3 not implemented, 4 BUG, 21 failed, 0 timeouts, 0 cases skipped
bash | 0 history builtin usage stdout: status=0 status=0 status=2 status=1 status=1stderr: bash: line 5: history: -5: invalid option history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] bash: line 7: history: f: numeric argument required bash: line 9: history: too: numeric argument required |
dash | 0 history builtin usage stdout: status=127 status=127 status=127 status=127 status=127stderr: dash: 1: history: not found dash: 3: history: not found dash: 5: history: not found dash: 7: history: not found dash: 9: history: not found |
ash | 0 history builtin usage [ash stdout] Expected 'status=0\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n' Got 'status=0\nstatus=0\nstatus=0\nstatus=0\nstatus=0\n' stdout: status=0 status=0 status=0 status=0 status=0stderr: |
zsh | 0 history builtin usage stdout: status=1 status=1 status=1 status=1 status=1stderr: fc: no such event: 1 fc: no such event: 5 fc: no such event: 0 fc: event not found: f fc: event not found: too |
mksh | 0 history builtin usage stdout: status=1 status=1 status=1 status=1 status=1stderr: mksh: fc: history functions not available mksh: <stdin>[3]: fc: history functions not available mksh: <stdin>[5]: fc: history functions not available mksh: <stdin>[7]: fc: history functions not available mksh: <stdin>[9]: fc: history functions not available |
ksh | 0 history builtin usage [ksh stdout] Expected 'status=0\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n' Got 'status=1\nstatus=1\nstatus=1\nstatus=1\nstatus=1\n' stdout: status=1 status=1 status=1 status=1 status=1stderr: E: ksh: fc: history functions not available E: ksh: <stdin>[3]: fc: history functions not available E: ksh: <stdin>[5]: fc: history functions not available E: ksh: <stdin>[7]: fc: history functions not available E: ksh: <stdin>[9]: fc: history functions not available |
toysh | 0 history builtin usage [toysh stdout] Expected 'status=0\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n' Got 'status=127\nstatus=127\nstatus=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127 status=127 status=127stderr: sh: history: No such file or directory sh: history: No such file or directory sh: history: No such file or directory sh: history: No such file or directory sh: history: No such file or directory |
sush | 0 history builtin usage [sush stdout] Expected 'status=0\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n' Got 'status=0\nstatus=1\nstatus=1\nstatus=1\nstatus=1\n' stdout: status=0 status=1 status=1 status=1 status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: history: +5: invalid option /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: history: -5: invalid option /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: history: f: invalid option /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: history: too: invalid option |
brush | 0 history builtin usage [brush stdout] Expected 'status=0\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n' Got 'status=99\nstatus=99\nstatus=99\nstatus=99\nstatus=99\n' stdout: status=99 status=99 status=99 status=99 status=99stderr: [33m WARN[0m unimplemented built-in: history [33m WARN[0m unimplemented built-in: history +5 [33m WARN[0m unimplemented built-in: history -5 [33m WARN[0m unimplemented built-in: history f [33m WARN[0m unimplemented built-in: history too many args |
bash | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} stdout: foo=$'a\nb\001c\'d' pf $'a\nb\001c\'d' @Q $'a\nb\001c\'d'stderr: |
dash | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} stdout: stderr: |
ash | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} [ash stdout] Expected "foo=$'a\\nb\\u0001c\\'d'\npf $'a\\nb\\u0001c\\'d'\n@Q $'a\\nb\\u0001c\\'d'\n" Got 'foo=\'a\nb\x01c\'"\'"\'d\'\npf ' [ash status] Expected 0, got 2 stdout: foo='a bc'"'"'d' pfstderr: ash: %q\n: invalid format ash: syntax error: bad substitution |
zsh | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} stdout: stderr: |
mksh | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} stdout: stderr: |
ksh | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} [ksh stdout] Expected "foo=$'a\\nb\\u0001c\\'d'\npf $'a\\nb\\u0001c\\'d'\n@Q $'a\\nb\\u0001c\\'d'\n" Got "foo=$'a\\nb\\001c\\047d'\npf 'a'$'\\n''b'$'\\001''c'\\''d'\n@Q $'a\nb\x01c'd'\n" stdout: foo=$'a\nb\001c\047d' pf 'a'$'\n''b'$'\001''c'\''d' @Q $'a bc'd'stderr: |
toysh | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} [toysh stdout] Expected "foo=$'a\\nb\\u0001c\\'d'\npf $'a\\nb\\u0001c\\'d'\n@Q $'a\\nb\\u0001c\\'d'\n" Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} [sush stdout] Expected "foo=$'a\\nb\\u0001c\\'d'\npf $'a\\nb\\u0001c\\'d'\n@Q $'a\\nb\\u0001c\\'d'\n" Got "foo=$'a\\nb\x01c'd'\npf a\nb\x01c\\'d\n" [sush status] Expected 0, got 1 stdout: foo=$'a\nbc'd' pf a bc\'dstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 15: `${foo@Q}': bad substitution |
brush | 1 Print shell strings with weird chars: set and printf %q and ${x@Q} [brush stdout] Expected "foo=$'a\\nb\\u0001c\\'d'\npf $'a\\nb\\u0001c\\'d'\n@Q $'a\\nb\\u0001c\\'d'\n" Got "foo=$'a\\nb\\001c\\'d'\npf 'a'$'\\n''b'$'\\001''c'\\''d'\n@Q $'a\\nb\\001c\\'d'\n" stdout: foo=$'a\nb\001c\'d' pf 'a'$'\n''b'$'\001''c'\''d' @Q $'a\nb\001c\'d'stderr: [31mERROR[0m error: i/o error: stream did not contain valid UTF-8 |
bash | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} stdout: foo=spam declare -- foo="spam" pf spam @Q 'spam'stderr: |
dash | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} stdout: stderr: |
ash | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} [ash stdout] Expected 'foo=spam\ndeclare -- foo=spam\npf spam\n@Q spam\n' Got "foo='spam'\npf " [ash status] Expected 0, got 2 stdout: foo='spam' pfstderr: ash: typeset: not found ash: %q\n: invalid format ash: syntax error: bad substitution |
zsh | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} stdout: stderr: |
mksh | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} stdout: foo=spam typeset foo=spam pf spam @Q spamstderr: |
ksh | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} [ksh stdout] Expected 'foo=spam\ndeclare -- foo=spam\npf spam\n@Q spam\n' Got 'foo=spam\ntypeset foo=spam\npf spam\n@Q spam\n' stdout: foo=spam typeset foo=spam pf spam @Q spamstderr: |
toysh | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} [toysh stdout] Expected 'foo=spam\ndeclare -- foo=spam\npf spam\n@Q spam\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} [sush stdout] Expected 'foo=spam\ndeclare -- foo=spam\npf spam\n@Q spam\n' Got 'foo=spam\ndeclare -- foo=spam\npf spam\n' [sush status] Expected 0, got 1 stdout: foo=spam declare -- foo=spam pf spamstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: `${foo@Q}': bad substitution |
brush | 2 Print shell strings with normal chars: set and printf %q and ${x@Q} [brush stdout] Expected 'foo=spam\ndeclare -- foo=spam\npf spam\n@Q spam\n' Got 'foo=spam\ndeclare -- foo="spam"\npf spam\n@Q \'spam\'\n' stdout: foo=spam declare -- foo="spam" pf spam @Q 'spam'stderr: |
toysh | 4 shift [toysh stdout] Expected '2 3 4\n4\n', got '\n\n' stdout: stderr: set: bad -- |
dash | 5 Shifting too far stdout: stderr: dash: 2: shift: can't shift that many |
sush | 5 Shifting too far [sush status] Expected 1, got 0 stdout: stderr: |
brush | 5 Shifting too far [brush status] Expected 1, got 2 stdout: stderr: |
bash | 6 Invalid shift argument stdout: stderr: bash: line 1: shift: ZZZ: numeric argument required |
zsh | 6 Invalid shift argument stdout: stderr: |
mksh | 6 Invalid shift argument stdout: stderr: |
ksh | 6 Invalid shift argument [ksh status] Expected 2, got 0 stdout: stderr: |
toysh | 6 Invalid shift argument [toysh status] Expected 2, got 1 stdout: stderr: shift: not integer: ZZZ |
sush | 6 Invalid shift argument [sush status] Expected 2, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: shift: ZZZ: numeric argument required |