status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 7 | 0 | 0 | 3 | 4 | 4 | 0 | 3 | 6 | 7 | |
ok | 3 | 0 | 2 | 4 | 3 | 0 | 0 | 0 | 0 | 3 | |
N-I | 0 | 0 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
BUG | 0 | 0 | 0 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 10 | 0 | 0 | 0 | 6 | 10 | 7 | 4 | 0 | |
total | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | FAIL | N-I | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | printf %q newline |
details | details | details | details | details | details | details | details | ||||
1 | ok | FAIL | N-I | ok | pass | pass | FAIL | FAIL | pass | pass | printf %q spaces |
details | details | details | details | details | details | ||||||
2 | pass | FAIL | N-I | pass | BUG | FAIL | FAIL | pass | FAIL | ok | printf %q quotes |
details | details | details | details | details | details | details | |||||
3 | pass | FAIL | N-I | pass | BUG | FAIL | FAIL | FAIL | FAIL | ok | printf %q unprintable |
details | details | details | details | details | details | details | details | ||||
4 | pass | FAIL | N-I | pass | pass | pass | FAIL | FAIL | pass | ok | printf %q unicode |
details | details | details | details | details | |||||||
5 | ok | FAIL | N-I | ok | BUG | FAIL | FAIL | FAIL | FAIL | pass | printf %q invalid unicode |
details | details | details | details | details | details | details | details | details | |||
6 | pass | FAIL | ok | BUG | pass | pass | FAIL | pass | pass | pass | set |
details | details | details | details | ||||||||
7 | pass | FAIL | N-I | BUG | ok | FAIL | FAIL | pass | pass | pass | declare |
details | details | details | details | details | details | ||||||
8 | pass | FAIL | N-I | N-I | ok | FAIL | FAIL | FAIL | pass | pass | ${var@Q} |
details | details | details | details | details | details | details | |||||
9 | ok | FAIL | ok | ok | pass | pass | FAIL | FAIL | pass | pass | xtrace |
details | details | details | details | details | details |
34 passed, 15 OK, 9 not implemented, 5 BUG, 37 failed, 0 timeouts, 0 cases skipped
dash | 0 printf %q newline [dash stdout] Expected "$'one\\ntwo'\nroundtrip-ok\n", got '' [dash status] Expected 0, got 1 stdout: stderr: dash: 4: printf: %q: invalid directive dash: 6: printf: %q: invalid directive |
ash | 0 printf %q newline stdout: stderr: |
zsh | 0 printf %q newline stdout: one$'\n'two roundtrip-okstderr: |
mksh | 0 printf %q newline stdout: 'one'$'\n''two' roundtrip-okstderr: |
ksh | 0 printf %q newline [ksh stdout] Expected "$'one\\ntwo'\nroundtrip-ok\n", got "'one'$'\\n''two'\nroundtrip-ok\n" stdout: 'one'$'\n''two' roundtrip-okstderr: |
toysh | 0 printf %q newline [toysh stdout] Expected "$'one\\ntwo'\nroundtrip-ok\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 0 printf %q newline [sush stdout] Expected "$'one\\ntwo'\nroundtrip-ok\n", got 'one\ntwo\n' [sush status] Expected 0, got 1 stdout: one twostderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: two: command not found |
brush | 0 printf %q newline [brush stdout] Expected "$'one\\ntwo'\nroundtrip-ok\n", got "'one'$'\\n''two'\nroundtrip-ok\n" stdout: 'one'$'\n''two' roundtrip-okstderr: |
bash | 1 printf %q spaces stdout: one\ twostderr: |
dash | 1 printf %q spaces [dash stdout] Expected "'one two'\n", got '' [dash status] Expected 0, got 2 stdout: stderr: dash: 5: printf: %q: invalid directive |
ash | 1 printf %q spaces stdout: stderr: |
zsh | 1 printf %q spaces stdout: one\ twostderr: |
toysh | 1 printf %q spaces [toysh stdout] Expected "'one two'\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 1 printf %q spaces [sush stdout] Expected "'one two'\n", got 'one two\n' stdout: one twostderr: |
dash | 2 printf %q quotes [dash stdout] Expected '\\\'\\"\nroundtrip-ok\n', got '' [dash status] Expected 0, got 1 stdout: stderr: dash: 4: printf: %q: invalid directive dash: 6: printf: %q: invalid directive |
ash | 2 printf %q quotes stdout: stderr: |
mksh | 2 printf %q quotes stdout: ''\''"' roundtrip-okstderr: |
ksh | 2 printf %q quotes [ksh stdout] Expected '\\\'\\"\nroundtrip-ok\n', got '\'\'\\\'\'"\'\nroundtrip-ok\n' stdout: ''\''"' roundtrip-okstderr: |
toysh | 2 printf %q quotes [toysh stdout] Expected '\\\'\\"\nroundtrip-ok\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
brush | 2 printf %q quotes [brush stdout] Expected '\\\'\\"\nroundtrip-ok\n', got '\'\'\\\'\'"\'\nroundtrip-ok\n' stdout: ''\''"' roundtrip-okstderr: |
osh | 2 printf %q quotes stdout: $'\'"' roundtrip-okstderr: |
dash | 3 printf %q unprintable [dash stdout] Expected "$'\\377'\n", got '' [dash status] Expected 0, got 2 stdout: stderr: dash: 4: printf: %q: invalid directive |
ash | 3 printf %q unprintable stdout: stderr: |
mksh | 3 printf %q unprintable stdout: ''$'\377'stderr: |
ksh | 3 printf %q unprintable [ksh stdout] Expected "$'\\377'\n", got "''$'\\377'\n" stdout: ''$'\377'stderr: |
toysh | 3 printf %q unprintable [toysh stdout] Expected "$'\\377'\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 3 printf %q unprintable [sush stdout] Expected "$'\\377'\n", got '\xc3\xbf\n' stdout: ÿstderr: |
brush | 3 printf %q unprintable [brush stdout] Expected "$'\\377'\n", got '\xef\xbf\xbd\n' stdout: �stderr: |
osh | 3 printf %q unprintable stdout: $'\xff'stderr: |
dash | 4 printf %q unicode [dash stdout] Expected '\xce\xbc\n', got '' [dash status] Expected 0, got 2 stdout: stderr: dash: 6: printf: %q: invalid directive |
ash | 4 printf %q unicode stdout: stderr: |
toysh | 4 printf %q unicode [toysh stdout] Expected '\xce\xbc\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 4 printf %q unicode [sush stdout] Expected '\xce\xbc\n', got '\xc3\x8e\xc2\xbc\n' stdout: μstderr: |
osh | 4 printf %q unicode stdout: 'μ'stderr: |
bash | 5 printf %q invalid unicode stdout: $'\316' $'\316μ' $'μ\316' $'\316a' $'a\316'stderr: |
dash | 5 printf %q invalid unicode [dash stdout] Expected "$'\\xce'\n$'\\xce\xce\xbc'\n$'\xce\xbc\\xce'\n$'\\xcea'\n$'a\\xce'\n" Got '' [dash status] Expected 0, got 2 stdout: stderr: dash: 4: printf: %q: invalid directive dash: 7: printf: %q: invalid directive dash: 10: printf: %q: invalid directive dash: 15: printf: %q: invalid directive dash: 17: printf: %q: invalid directive |
ash | 5 printf %q invalid unicode stdout: stderr: |
zsh | 5 printf %q invalid unicode stdout: $'\316' $'\316'μ μ$'\316' $'\316'a a$'\316'stderr: |
mksh | 5 printf %q invalid unicode stdout: ''$'\316' ''$'\316''μ' 'μ'$'\316'stderr: |
ksh | 5 printf %q invalid unicode [ksh stdout] Expected "$'\\xce'\n$'\\xce\xce\xbc'\n$'\xce\xbc\\xce'\n$'\\xcea'\n$'a\\xce'\n" Got "''$'\\316'\n''$'\\316''\xce\xbc'\n'\xce\xbc'$'\\316'\n\xe0\xb3\xaa\n'a'$'\\316'\n" stdout: ''$'\316' ''$'\316''μ' 'μ'$'\316' ೪ 'a'$'\316'stderr: |
toysh | 5 printf %q invalid unicode [toysh stdout] Expected "$'\\xce'\n$'\\xce\xce\xbc'\n$'\xce\xbc\\xce'\n$'\\xcea'\n$'a\\xce'\n" Got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 5 printf %q invalid unicode [sush stdout] Expected "$'\\xce'\n$'\\xce\xce\xbc'\n$'\xce\xbc\\xce'\n$'\\xcea'\n$'a\\xce'\n" Got '\xc3\x8e\n\xc3\x8e\xc3\x8e\xc2\xbc\n\xc3\x8e\xc2\xbc\xc3\x8e\n\xc3\x8ea\na\xc3\x8e\n' stdout: Î Îμ μΠÎa aÎstderr: |
brush | 5 printf %q invalid unicode [brush stdout] Expected "$'\\xce'\n$'\\xce\xce\xbc'\n$'\xce\xbc\\xce'\n$'\\xcea'\n$'a\\xce'\n" Got '\xef\xbf\xbd\n\xef\xbf\xbd\xce\xbc\n\xce\xbc\xef\xbf\xbd\n\xef\xbf\xbda\na\xef\xbf\xbd\n' stdout: � �μ μ� �a a�stderr: |
dash | 6 set [dash stdout] Expected "zz=$'one\\ntwo'\n", got "zz='$one\\ntwo'\n" stdout: zz='$one\ntwo'stderr: |
ash | 6 set stdout: zz='onestderr: |
zsh | 6 set stdout: stderr: |
toysh | 6 set [toysh stdout] Expected "zz=$'one\\ntwo'\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
dash | 7 declare [dash stdout] Expected "zz=$'one\\ntwo'\ndeclare -- zz=$'one\\ntwo'\n" Got '' [dash status] Expected 0, got 127 stdout: stderr: dash: 5: typeset: not found dash: 6: typeset: not found |
ash | 7 declare stdout: stderr: |
zsh | 7 declare stdout: stderr: |
mksh | 7 declare stdout: typeset zz typeset zz=$'one\ntwo'stderr: |
ksh | 7 declare [ksh stdout] Expected "zz=$'one\\ntwo'\ndeclare -- zz=$'one\\ntwo'\n" Got "typeset zz\ntypeset zz=$'one\\ntwo'\n" stdout: typeset zz typeset zz=$'one\ntwo'stderr: |
toysh | 7 declare [toysh stdout] Expected "zz=$'one\\ntwo'\ndeclare -- zz=$'one\\ntwo'\n" Got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
dash | 8 ${var@Q} [dash stdout] Expected "$'one\\ntwo \xce\xbc'\n$'one\\ntwo \xce\xbc'\n", got '' [dash status] Expected 0, got 2 stdout: stderr: dash: 5: Bad substitution |
ash | 8 ${var@Q} stdout: stderr: |
zsh | 8 ${var@Q} stdout: stderr: |
mksh | 8 ${var@Q} stdout: $'one two μ' $'one two μ'stderr: |
ksh | 8 ${var@Q} [ksh stdout] Expected "$'one\\ntwo \xce\xbc'\n$'one\\ntwo \xce\xbc'\n", got "$'one\ntwo \xce\xbc'\n$'one\ntwo \xce\xbc'\n" stdout: $'one two μ' $'one two μ'stderr: |
toysh | 8 ${var@Q} [toysh stdout] Expected "$'one\\ntwo \xce\xbc'\n$'one\\ntwo \xce\xbc'\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 8 ${var@Q} [sush stdout] Expected "$'one\\ntwo \xce\xbc'\n$'one\\ntwo \xce\xbc'\n", got '' [sush status] Expected 0, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: `${zz@Q}': bad substitution /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: `${zz@Q}': bad substitution |
bash | 9 xtrace stdout: one twostderr: + echo 'one two' |
dash | 9 xtrace [dash stdout] Expected 'one\ntwo\n', got '$one\ntwo\n' [dash stderr] Expected "+ echo $'one\\ntwo'\n", got '+ echo $one\\ntwo\n' stdout: $one twostderr: + echo $one\ntwo |
ash | 9 xtrace stdout: one twostderr: + echo 'one two' |
zsh | 9 xtrace stdout: one twostderr: +zsh:3> echo 'one two' |
toysh | 9 xtrace [toysh stderr] Expected "+ echo $'one\\ntwo'\n", got ' echo "$zz" \n' stdout: one twostderr: echo "$zz" |
sush | 9 xtrace [sush stderr] Expected "+ echo $'one\\ntwo'\n", got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: -x: invalid option\n' stdout: one twostderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: -x: invalid option |