58 passed, 18 OK, 3 not implemented, 2 BUG, 52 failed, 0 timeouts, 0 cases skipped 1 failed under osh
toysh | 0 unset PS4 [toysh stdout] Expected '1\n2\n', got '' [toysh stderr] Expected '+ echo 1\n+ unset PS4\necho 2\n', got 'munmap_chunk(): invalid pointer\n' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 0 unset PS4 [sush stderr] Expected '+ echo 1\n+ unset PS4\necho 2\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: -x: invalid option\n' stdout: 1 2stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: -x: invalid option |
bash | 1 set -o verbose prints unevaluated code stdout: foo barstderr: x=foo y=bar echo $x echo $(echo $y) |
toysh | 1 set -o verbose prints unevaluated code [toysh stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'set: bad -o verbose\n' stdout: foo barstderr: set: bad -o verbose |
sush | 1 set -o verbose prints unevaluated code [sush stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: verbose: invalid option name\n' stdout: foo barstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: verbose: invalid option name |
brush | 1 set -o verbose prints unevaluated code [brush stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got '' stdout: foo barstderr: |
osh | 1 set -o verbose prints unevaluated code [osh stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'osh warning: set -o verbose not implemented\n' stdout: foo barstderr: osh warning: set -o verbose not implemented |
bash | 2 xtrace with unprintable chars stdout: abcstderr: + echo $'a\003b\004c' |
mksh | 2 xtrace with unprintable chars stdout: a;cstderr: + echo $'a;\004c\r' |
ksh | 2 xtrace with unprintable chars [ksh stdout] Expected 'a\x03b\x04c\x00d\n', got 'a;\x04c\r\n' [ksh stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got "+ echo $'a;\\004c\\r'\n" stdout: a;cstderr: + echo $'a;\004c\r' |
toysh | 2 xtrace with unprintable chars [toysh stdout] Expected 'a\x03b\x04c\x00d\n', got '' [toysh stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got 'main: line 1: sh: syntax error: (\n' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 2 xtrace with unprintable chars [sush stdout] Expected 'a\x03b\x04c\x00d\n', got '' [sush stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got "/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: xtrace: invalid option name\n\nthread 'main' panicked at src/proc_ctrl.rs:181:46:\ncalled `Result::unwrap()` on an `Err` value: NulError(5, [97, 3, 98, 4, 99, 0, 100])\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" [sush status] Expected 0, got 101 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: xtrace: invalid option name thread 'main' panicked at src/proc_ctrl.rs:181:46: called `Result::unwrap()` on an `Err` value: NulError(5, [97, 3, 98, 4, 99, 0, 100]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 2 xtrace with unprintable chars [brush stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got "+ echo $'a\\003b\\004c\\000d'\n" stdout: abc dstderr: + echo $'a\003b\004c\000d' |
toysh | 3 xtrace with unicode chars [toysh stdout] Expected '[\xce\xbc] [\xce\xbc]\n', got '' [toysh stderr] Expected "+ echo '[\xce\xbc]' '[\xce\xbc]'\n", got 'main: line 1: sh: syntax error: (\n' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 3 xtrace with unicode chars [sush stderr] Expected "+ echo '[\xce\xbc]' '[\xce\xbc]'\n", got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: set: xtrace: invalid option name\n' stdout: [μ] [μ]stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: set: xtrace: invalid option name |
toysh | 4 xtrace with paths [toysh stderr] Expected '+ echo my-dir/my_file.cc\n', got '' stdout: my-dir/my_file.ccstderr: |
sush | 4 xtrace with paths [sush stderr] Expected '+ echo my-dir/my_file.cc\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: xtrace: invalid option name\n' stdout: my-dir/my_file.ccstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: xtrace: invalid option name |
bash | 5 xtrace with tabs stdout: [ ]stderr: + echo '[ ]' |
toysh | 5 xtrace with tabs [toysh stdout] Expected u'[\t]\n', got '' [toysh stderr] Expected "+ echo $'[\\t]'\n", got 'main: line 1: sh: syntax error: (\n' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 5 xtrace with tabs [sush stderr] Expected "+ echo $'[\\t]'\n", got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: xtrace: invalid option name\n' stdout: [ ]stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: xtrace: invalid option name |
bash | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
mksh | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
ksh | 6 xtrace with whitespace, quotes, and backslash [ksh stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got '+ echo \'1 2\' \\\' \'"\' \'\\\'\n' stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
toysh | 6 xtrace with whitespace, quotes, and backslash [toysh stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got '' stdout: 1 2 ' " \stderr: |
sush | 6 xtrace with whitespace, quotes, and backslash [sush stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: xtrace: invalid option name\n' stdout: 1 2 ' " \stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: xtrace: invalid option name |
brush | 6 xtrace with whitespace, quotes, and backslash [brush stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got '+ echo \'1 2\' \\\' \'"\' \'\\\'\n' stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
bash | 7 xtrace with newlines stdout: [ ]stderr: + echo '[ ]' |
toysh | 7 xtrace with newlines [toysh stderr] Expected "+ echo $'[\\n]'\n", got " echo $'[\\n]' \n" stdout: [ ]stderr: echo $'[\n]' |
sush | 7 xtrace with newlines [sush stderr] Expected "+ echo $'[\\n]'\n", got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option\n' stdout: [ ]stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option |
mksh | 8 xtrace written before command executes stdout: stderr: + >&2 + echo one one + >&2 + echo two two |
ksh | 8 xtrace written before command executes [ksh stderr] Expected '+ echo one\none\n+ echo two\ntwo\n', got '+ >&2 \n+ echo one\none\n+ >&2 \n+ echo two\ntwo\n' stdout: stderr: + >&2 + echo one one + >&2 + echo two two |
toysh | 8 xtrace written before command executes [toysh stderr] Expected '+ echo one\none\n+ echo two\ntwo\n', got ' echo one >& 2 \none\n echo two >& 2 \ntwo\n' stdout: stderr: echo one >& 2 one echo two >& 2 two |
sush | 8 xtrace written before command executes [sush stderr] Expected '+ echo one\none\n+ echo two\ntwo\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option\none\ntwo\n' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option one two |
bash | 9 Assignments and assign builtins stdout: 2stderr: + x=1 + x=2 + echo 2 + readonly x=3 + x=3 |
mksh | 9 Assignments and assign builtins stdout: 2stderr: + x=1 x=2 + echo 2 + readonly 'x=3' |
ksh | 9 Assignments and assign builtins [ksh stderr] Expected '+ x=1\n+ x=2\n+ echo 2\n+ readonly x=3\n', got "+ x=1 x=2 \n+ echo 2\n+ readonly 'x=3'\n" stdout: 2stderr: + x=1 x=2 + echo 2 + readonly 'x=3' |
toysh | 9 Assignments and assign builtins [toysh stderr] Expected '+ x=1\n+ x=2\n+ echo 2\n+ readonly x=3\n', got ' x=1 x=2 \n echo $x \n readonly x=3 \nsh: readonly: No such file or directory\n' [toysh status] Expected 0, got 127 stdout: 2stderr: x=1 x=2 echo $x readonly x=3 sh: readonly: No such file or directory |
sush | 9 Assignments and assign builtins [sush stderr] Expected '+ x=1\n+ x=2\n+ echo 2\n+ readonly x=3\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option\n' stdout: 2stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option |
bash | 10 [[ ]] stdout: stderr: + dir=/ + [[ -d / ]] + (( a = 42 )) |
mksh | 10 [[ ]] stdout: stderr: |
ksh | 10 [[ ]] [ksh stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got "+ dir=/ \n+ let ' a = 42 '\n" stdout: stderr: + dir=/ + let ' a = 42 ' |
toysh | 10 [[ ]] [toysh stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got 'main: line 1: sh: syntax error: (\n' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 10 [[ ]] [sush stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: -x: invalid option\n' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: -x: invalid option |
brush | 10 [[ ]] [brush stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got '+ dir=/\n+ [[ -d / ]]\n+ (( a = 42 ))\n' stdout: stderr: + dir=/ + [[ -d / ]] + (( a = 42 )) |
mksh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + typeset 'PS4=- ' - echo func + echo two |
ksh | 11 PS4 is scoped [ksh stderr] Expected "+ echo one\n+ f\n+ local 'PS4=- '\n- echo func\n+ echo two\n" Got "+ echo one\n+ f\n+ typeset 'PS4=- '\n- echo func\n+ echo two\n" stdout: one func twostderr: + echo one + f + typeset 'PS4=- ' - echo func + echo two |
toysh | 11 PS4 is scoped [toysh stderr] Expected "+ echo one\n+ f\n+ local 'PS4=- '\n- echo func\n+ echo two\n" Got " echo one \n f \n { \n local PS4='- ' \n echo func \n echo two \n" stdout: one func twostderr: echo one f { local PS4='- ' echo func echo two |
sush | 11 PS4 is scoped [sush stderr] Expected "+ echo one\n+ f\n+ local 'PS4=- '\n- echo func\n+ echo two\n" Got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option\n' stdout: one func twostderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: -x: invalid option |
brush | 11 PS4 is scoped [brush stderr] Expected "+ echo one\n+ f\n+ local 'PS4=- '\n- echo func\n+ echo two\n" Got "+ echo one\n+ f\n+ local PS4='- '\n- echo func\n+ echo two\n" stdout: one func twostderr: + echo one + f + local PS4='- ' - echo func + echo two |
osh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + local PS4='- ' - echo func + echo two |
mksh | 12 xtrace with variables in PS4 stdout: one twostderr: +:x=1 +1:echo one +1:x=2 +2:echo two |
ksh | 12 xtrace with variables in PS4 [ksh stderr] Expected '+:x=1\n+1:echo one\n+1:x=2\n+2:echo two\n', got '+:x=1 \n+1:echo one\n+1:x=2 \n+2:echo two\n' stdout: one twostderr: +:x=1 +1:echo one +1:x=2 +2:echo two |
toysh | 12 xtrace with variables in PS4 [toysh stderr] Expected '+:x=1\n+1:echo one\n+1:x=2\n+2:echo two\n', got '' stdout: one twostderr: |
sush | 12 xtrace with variables in PS4 [sush stderr] Expected '+:x=1\n+1:echo one\n+1:x=2\n+2:echo two\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: xtrace: invalid option name\n' stdout: one twostderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: xtrace: invalid option name |
osh | 12 xtrace with variables in PS4 stdout: one twostderr: +1:x=1 +1:echo one +2:x=2 +2:echo two |
mksh | 13 PS4 with unterminated ${ stdout: stderr: mksh: no closing quote |
ksh | 13 PS4 with unterminated ${ [ksh stdout] Expected 'one\nstatus=0\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: no closing quote |
mksh | 14 PS4 with unterminated $( stdout: stderr: mksh: syntax error: '(' unmatched |
ksh | 14 PS4 with unterminated $( [ksh stdout] Expected 'one\nstatus=0\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: syntax error: unmatched '(' |
mksh | 15 PS4 with runtime error stdout: stderr: mksh: <stdin>[4]: 1 / 0 : zero divisor |
ksh | 15 PS4 with runtime error [ksh stdout] Expected 'one\nstatus=0\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: W: ksh: <stdin>[4]: 1 / 0 : zero divisor |
brush | 15 PS4 with runtime error [brush stdout] Expected 'one\nstatus=0\n', got '' [brush status] Expected 0, got 1 stdout: stderr: [31mERROR[0m error: arithmetic evaluation error: division by zero [31mERROR[0m error: arithmetic evaluation error: division by zero |
toysh | 16 Reading $? in PS4 [toysh stderr] Expected '[last=0] false\n[last=1] echo ok\n', got 'last=$?] false \nlast=$?] echo ok \n' stdout: okstderr: last=$?] false last=$?] echo ok |
sush | 16 Reading $? in PS4 [sush stderr] Expected '[last=0] false\n[last=1] echo ok\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: -x: invalid option\n' stdout: okstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: set: -x: invalid option |
osh | 16 Reading $? in PS4 stdout: okstderr: [last=0] 'false' [last=1] echo ok |
bash | 17 Regression: xtrace for "declare -a a+=(v)" stdout: stderr: + a+=('2') + declare a |
mksh | 17 Regression: xtrace for "declare -a a+=(v)" stdout: stderr: |
ksh | 17 Regression: xtrace for "declare -a a+=(v)" [ksh stderr] Expected '+ declare a+=(2)\n', got "E: ksh: <stdin>[5]: syntax error: unexpected '('\n" [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[5]: syntax error: unexpected '(' |
toysh | 17 Regression: xtrace for "declare -a a+=(v)" [toysh stderr] Expected '+ declare a+=(2)\n', got 'munmap_chunk(): invalid pointer\n' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 17 Regression: xtrace for "declare -a a+=(v)" [sush stderr] Expected '+ declare a+=(2)\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: -x: invalid option\n' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: -x: invalid option |
brush | 17 Regression: xtrace for "declare -a a+=(v)" [brush stderr] Expected '+ declare a+=(2)\n', got "+ declare a+='(2)'\n" stdout: stderr: + declare a+='(2)' |
mksh | 18 Regression: xtrace for "a+=(v)" stdout: stderr: |
ksh | 18 Regression: xtrace for "a+=(v)" [ksh stderr] Expected '+ a+=(2)\n', got '+ set -A a+ -- 2\n' stdout: stderr: + set -A a+ -- 2 |
toysh | 18 Regression: xtrace for "a+=(v)" [toysh stderr] Expected '+ a+=(2)\n', got 'munmap_chunk(): invalid pointer\n' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 18 Regression: xtrace for "a+=(v)" [sush stderr] Expected '+ a+=(2)\n', got '/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: -x: invalid option\n' [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: -x: invalid option |