status | bash | mksh | ksh | toysh | sush | brush | osh | |
pass | 6 | 1 | 0 | 0 | 1 | 3 | 5 | |
ok | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
FAIL | 0 | 5 | 6 | 6 | 5 | 3 | 0 | |
total | 6 | 6 | 6 | 6 | 6 | 6 | 6 | |
case | bash | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | FAIL | FAIL | FAIL | FAIL | pass | pass | var ref to array 'preHooks[@]' |
details | details | details | details | |||||
1 | pass | FAIL | FAIL | FAIL | FAIL | pass | pass | Similar to above with set -u |
details | details | details | details | |||||
2 | pass | FAIL | FAIL | FAIL | FAIL | pass | pass | ${!ref} to undefined array |
details | details | details | details | |||||
3 | pass | FAIL | FAIL | FAIL | FAIL | FAIL | pass | ${!ref} to undefined string var is fatal, INCONSISTENT with array |
details | details | details | details | details | ||||
4 | pass | FAIL | FAIL | FAIL | FAIL | FAIL | ok | export with dynamic var name += |
details | details | details | details | details | details | |||
5 | pass | pass | FAIL | FAIL | pass | FAIL | pass | let idiom can be written in POSIX shell - eval ": \$(( ))" |
details | details | details |
16 passed, 1 OK, 0 not implemented, 0 BUG, 25 failed, 0 timeouts, 0 cases skipped
mksh | 0 var ref to array 'preHooks[@]' [mksh stdout] Expected "show\n[]\n[]\nshow\n['foo', 'bar', 'baz']\n['foo bar', 'baz']\n" Got "show\n['hooksSlice']\n['hooksSlice']\nshow\n['hooksSlice']\n['hooksSlice']\n" stdout: show ['hooksSlice'] ['hooksSlice'] show ['hooksSlice'] ['hooksSlice']stderr: |
ksh | 0 var ref to array 'preHooks[@]' [ksh stdout] Expected "show\n[]\n[]\nshow\n['foo', 'bar', 'baz']\n['foo bar', 'baz']\n" Got "show\n['hooksSlice']\nshow\n['hooksSlice']\n" stdout: show ['hooksSlice'] show ['hooksSlice']stderr: E: ksh: <stdin>[12]: ${!hooksSlice+"${!hooksSlice}"}: bad substitution E: ksh: <stdin>[15]: ${!hooksSlice+"${!hooksSlice}"}: bad substitution |
toysh | 0 var ref to array 'preHooks[@]' [toysh stdout] Expected "show\n[]\n[]\nshow\n['foo', 'bar', 'baz']\n['foo bar', 'baz']\n" Got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 11: sh: syntax error: show |
sush | 0 var ref to array 'preHooks[@]' [sush stdout] Expected "show\n[]\n[]\nshow\n['foo', 'bar', 'baz']\n['foo bar', 'baz']\n" Got "show\n[]\n[]\nshow\n['foo', 'bar', 'baz']\n['foo bar baz']\n" stdout: show [] [] show ['foo', 'bar', 'baz'] ['foo bar baz']stderr: |
mksh | 1 Similar to above with set -u [mksh stdout] Expected "show\n[]\nshow\n['foo bar', 'baz']\n", got "show\n['hooksSlice']\nshow\n['hooksSlice']\n" stdout: show ['hooksSlice'] show ['hooksSlice']stderr: |
ksh | 1 Similar to above with set -u [ksh stdout] Expected "show\n[]\nshow\n['foo bar', 'baz']\n", got 'show\nshow\n' [ksh status] Expected 0, got 1 stdout: show showstderr: E: ksh: <stdin>[13]: ${!hooksSlice+"${!hooksSlice}"}: bad substitution E: ksh: <stdin>[16]: ${!hooksSlice+"${!hooksSlice}"}: bad substitution |
toysh | 1 Similar to above with set -u [toysh stdout] Expected "show\n[]\nshow\n['foo bar', 'baz']\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 12: sh: syntax error: show |
sush | 1 Similar to above with set -u [sush stdout] Expected "show\n[]\nshow\n['foo bar', 'baz']\n", got "show\n[]\nshow\n['foo bar baz']\n" stdout: show [] show ['foo bar baz']stderr: |
mksh | 2 ${!ref} to undefined array [mksh stdout] Expected '[]\n', got "['hookSlice']\nhookSlice\n" stdout: ['hookSlice'] hookSlicestderr: mksh: <stdin>[2]: shopt: not found |
ksh | 2 ${!ref} to undefined array [ksh stdout] Expected '[]\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[2]: shopt: inaccessible or not found E: ksh: <stdin>[6]: ${!hookSlice+"${!hookSlice}"}: bad substitution |
toysh | 2 ${!ref} to undefined array [toysh stdout] Expected '[]\n', got '' [toysh status] Expected 0, got 1 stdout: stderr: sh: shopt: No such file or directory main: line 6: sh: preHooks[@]: bad substitution main: line 8: sh: preHooks[@]: bad substitution |
sush | 2 ${!ref} to undefined array [sush stdout] Expected '[]\n', got '' [sush status] Expected 0, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: shopt: eval_unsafe_arith: not supported yet /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: preHooks: unbound variable /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: preHooks: unbound variable |
mksh | 3 ${!ref} to undefined string var is fatal, INCONSISTENT with array [mksh stdout] Expected '[]\n', got "['hookSlice']\n['hookSlice']\nend\n" [mksh status] Expected 1, got 0 stdout: ['hookSlice'] ['hookSlice'] endstderr: |
ksh | 3 ${!ref} to undefined string var is fatal, INCONSISTENT with array [ksh stdout] Expected '[]\n', got "['hookSlice']\n['hookSlice']\nend\n" [ksh status] Expected 1, got 0 stdout: ['hookSlice'] ['hookSlice'] endstderr: |
toysh | 3 ${!ref} to undefined string var is fatal, INCONSISTENT with array [toysh stdout] Expected '[]\n', got '[]\n[]\nend\n' [toysh status] Expected 1, got 0 stdout: [] [] endstderr: |
sush | 3 ${!ref} to undefined string var is fatal, INCONSISTENT with array [sush stdout] Expected '[]\n', got '[]\n[]\nend\n' [sush status] Expected 1, got 0 stdout: [] [] endstderr: |
brush | 3 ${!ref} to undefined string var is fatal, INCONSISTENT with array [brush stdout] Expected '[]\n', got '[]\n[]\nend\n' [brush status] Expected 1, got 0 stdout: [] [] endstderr: |
mksh | 4 export with dynamic var name += [mksh stdout] Expected 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\ndeclare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' Got '' [mksh status] Expected 0, got 127 stdout: stderr: mksh: <stdin>[20]: declare: not found mksh: <stdin>[25]: declare: not found |
ksh | 4 export with dynamic var name += [ksh stdout] Expected 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\ndeclare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' Got '' [ksh status] Expected 0, got 127 stdout: stderr: E: ksh: <stdin>[20]: declare: inaccessible or not found E: ksh: <stdin>[25]: declare: inaccessible or not found |
toysh | 4 export with dynamic var name += [toysh stdout] Expected 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\ndeclare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' Got 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' stdout: declare -x NIX_LDFLAGS_foo=" -Lone/lib64"stderr: declare: NIX_LDFLAGS_foo: not found |
sush | 4 export with dynamic var name += [sush stdout] Expected 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\ndeclare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' Got 'declare -- NIX_LDFLAGS_foo= -Lone/lib64\n' stdout: declare -- NIX_LDFLAGS_foo= -Lone/lib64stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 20: NIX_LDFLAGS_foo: not found |
brush | 4 export with dynamic var name += [brush stdout] Expected 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\ndeclare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' Got 'declare -x NIX_LDFLAGS_foo=" -Lone/lib64"\n' stdout: declare -x NIX_LDFLAGS_foo=" -Lone/lib64"stderr: declare: NIX_LDFLAGS_foo: not found |
osh | 4 export with dynamic var name += stdout: declare -x NIX_LDFLAGS_foo=' -Lone/lib64'stderr: [ stdin ]:20: osh: declare: 'NIX_LDFLAGS_foo' is not defined |
ksh | 5 let idiom can be written in POSIX shell - eval ": \$(( ))" [ksh stdout] Expected 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=0\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=1\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=3\n\n' Got 'i=0\n' [ksh status] Expected 0, got 1 stdout: i=0stderr: E: ksh: <stdin>[20]: ${!inputVar:-0}: bad substitution |
toysh | 5 let idiom can be written in POSIX shell - eval ": \$(( ))" [toysh stdout] Expected 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=0\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=1\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=3\n\n' Got 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\n' stdout: i=0 NIX_ENFORCE_NO_NATIVE=0 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu= i=1 NIX_ENFORCE_NO_NATIVE=1 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu= i=2 NIX_ENFORCE_NO_NATIVE=2 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=stderr: main: line 13: sh: bad math: NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu |= 0 @ 50 main: line 13: sh: bad math: NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu |= 1 @ 50 main: line 13: sh: bad math: NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu |= 2 @ 50 |
brush | 5 let idiom can be written in POSIX shell - eval ": \$(( ))" [brush stdout] Expected 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=0\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=1\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=3\n\n' Got 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=\n\n' stdout: i=0 NIX_ENFORCE_NO_NATIVE=0 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu= i=1 NIX_ENFORCE_NO_NATIVE=1 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu= i=2 NIX_ENFORCE_NO_NATIVE=2 NIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=stderr: [31mERROR[0m failed to parse arithmetic expression [31mERROR[0m failed to parse arithmetic expression [31mERROR[0m failed to parse arithmetic expression |