parse-errors () { run-file parse-errors "$@" } 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
78 passed, 25 OK, 1 not implemented, 5 BUG, 3 failed, 0 timeouts, 0 cases skipped 3 failed under osh
bash | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
dash | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
mksh | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
bash | 3 Bad braced var sub -- not allowed stdout: stderr: bash: line 1: ${%}: bad substitution |
mksh | 3 Bad braced var sub -- not allowed stdout: stderr: mksh: <stdin>[1]: ${%}: bad substitution |
bash | 4 Bad var sub caught at parse time stdout: okstderr: |
dash | 4 Bad var sub caught at parse time stdout: okstderr: |
mksh | 4 Bad var sub caught at parse time stdout: okstderr: |
mksh | 5 Incomplete while stdout: stderr: mksh: <stdin>[1]: syntax error: 'while' unmatched |
mksh | 6 Incomplete for stdout: stderr: mksh: <stdin>[1]: syntax error: 'newline' unexpected |
mksh | 7 Incomplete if stdout: stderr: mksh: <stdin>[1]: syntax error: 'if' unmatched |
mksh | 8 do unexpected stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
mksh | 9 } is a parse error stdout: stderr: mksh: <stdin>[1]: syntax error: '}' unexpected |
mksh | 10 { is its own word, needs a space stdout: stderr: mksh: <stdin>[1]: syntax error: '}' unexpected |
bash | 12 Invalid for loop variable name stdout: donestderr: bash: line 3: `i.j': not a valid identifier |
mksh | 12 Invalid for loop variable name stdout: stderr: mksh: <stdin>[1]: for: bad identifier |
dash | 14 bad var name in export stdout: stderr: dash: 1: export: FOO-BAR: bad variable name |
dash | 15 bad var name in local stdout: stderr: dash: 2: FOO-BAR: bad variable name |
mksh | 16 misplaced parentheses are not a subshell stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
mksh | 17 incomplete command sub stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unmatched |
mksh | 18 incomplete backticks stdout: stderr: mksh: <stdin>[2]: no closing quote |
mksh | 19 misplaced ;; stdout: stderr: mksh: <stdin>[1]: syntax error: ';;' unexpected |
dash | 20 empty clause in [[ stdout: stderr: dash: 1: [[: not found |
mksh | 20 empty clause in [[ stdout: stderr: mksh: <stdin>[1]: syntax error: '||' expression expected |
mksh | 21 interactive parse error (regression) stdout: stderr: mksh: can't find tty fd: No such device or address mksh: warning: won't have full job control mksh: syntax error: ')' unexpected |
bash | 22 array literal inside array is a parse error stdout: len=0stderr: bash: line 1: syntax error near unexpected token `(' bash: line 1: `a=( inside=() )' |
mksh | 22 array literal inside array is a parse error stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
osh | 22 array literal inside array is a parse error [osh status] Expected 2, got 1 stdout: stderr: a=( inside=() ) ^ [ stdin ]:1: fatal: Unexpected array literal |
mksh | 23 array literal inside loop is a parse error stdout: stderr: mksh: <stdin>[2]: syntax error: '(' unexpected |
osh | 23 array literal inside loop is a parse error [osh status] Expected 2, got 1 stdout: stderr: for x in a=(); do ^ [ stdin ]:2: fatal: Unexpected array literal |
mksh | 24 array literal in case stdout: stderr: mksh: <stdin>[2]: syntax error: '(' unexpected |
osh | 24 array literal in case [osh status] Expected 2, got 1 stdout: stderr: case a=() in ^ [ stdin ]:2: fatal: Unexpected array literal |
mksh | 25 %foo=() is parse error (regression) stdout: stderr: mksh: <stdin>[2]: %foo=: invalid function name |
osh | 26 leading =word is not allowed regardless of shopt -s parse_equals stdout: stderr: =word ^ [ stdin ]:1: =word isn't allowed. Hint: add a space after =, or quote it |