xtrace () { run-file xtrace "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" }
spec test index / oilshell.org
35 passed, 23 OK, 6 not implemented, 3 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
bash | 1 set -o verbose prints unevaluated code stdout: foo barstderr: x=foo y=bar echo $x echo $(echo $y) |
osh | 1 set -o verbose prints unevaluated code [osh stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'Warning: set -o verbose not implemented\n' stdout: foo barstderr: Warning: set -o verbose not implemented |
bash | 2 xtrace with unprintable chars stdout: abcstderr: + echo $'a\003b\004c' |
dash | 2 xtrace with unprintable chars stdout: stderr: |
mksh | 2 xtrace with unprintable chars stdout: a;cstderr: + echo $'a;\004c\r' |
dash | 3 xtrace with unicode chars stdout: stderr: |
bash | 5 xtrace with tabs stdout: [ ]stderr: + echo '[ ]' |
dash | 5 xtrace with tabs stdout: stderr: |
bash | 6 xtrace with whitespace, quotes, and backslash stdout: 1 2 ' " \stderr: + echo '1 2' \' '"' '\' |
dash | 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' \' '"' '\' |
bash | 7 xtrace with newlines stdout: [ ]stderr: + echo '[ ]' |
dash | 7 xtrace with newlines stdout: $[ ]stderr: + echo $[\n] |
mksh | 8 xtrace written before command executes stdout: stderr: + >&2 + echo one one + >&2 + echo two two |
bash | 9 Assignments and assign builtins stdout: 2stderr: + x=1 + x=2 + echo 2 + readonly x=3 + x=3 |
dash | 9 Assignments and assign builtins stdout: 2stderr: + x=1 x=2 + echo 2 + readonly x=3 |
mksh | 9 Assignments and assign builtins stdout: 2stderr: + x=1 x=2 + echo 2 + readonly 'x=3' |
bash | 10 [[ ]] stdout: stderr: + dir=/ + [[ -d / ]] + (( a = 42 )) |
dash | 10 [[ ]] stdout: stderr: |
mksh | 10 [[ ]] stdout: stderr: |
dash | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + local PS4=- - echo func + echo two |
mksh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + typeset 'PS4=- ' - echo func + echo two |
osh | 11 PS4 is scoped stdout: one func twostderr: + echo one + f + local PS4='- ' - echo func + echo two |
dash | 12 xtrace with variables in PS4 stdout: one twostderr: +1:x=1 +1:echo one +2:x=2 +2:echo two |
mksh | 12 xtrace with variables in PS4 stdout: one twostderr: +:x=1 +1:echo one +1:x=2 +2:echo two |
osh | 12 xtrace with variables in PS4 stdout: one twostderr: +1:x=1 +1:echo one +2:x=2 +2:echo two |
dash | 13 PS4 with unterminated ${ stdout: stderr: dash: 1: Syntax error: Missing '}' |
mksh | 13 PS4 with unterminated ${ stdout: stderr: mksh: no closing quote |
dash | 14 PS4 with unterminated $( stdout: stderr: dash: 1: Syntax error: end of file unexpected (expecting ")") |
mksh | 14 PS4 with unterminated $( stdout: stderr: mksh: syntax error: '(' unmatched |
dash | 15 PS4 with runtime error stdout: stderr: dash: 4: arithmetic expression: division by zero: " 1 / 0 " |
mksh | 15 PS4 with runtime error stdout: stderr: mksh: <stdin>[4]: 1 / 0 : zero divisor |
osh | 16 Reading $? in PS4 stdout: okstderr: [last=0] 'false' [last=1] echo ok |