spec test index / oilshell.org
165 passed, 31 OK, 8 not implemented, 16 BUG, 5 failed, 0 timeouts, 0 cases skipped 2 failed under osh
mksh | 2 Env binding can use preceding bindings, but not subsequent ones stdout: foo [][] bazstderr: |
dash | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- None None None None p --- f() --- None None None None Nonestderr: |
mksh | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- f [] [A] None p --- f() --- f [] [A] None Nonestderr: |
mksh | 9 Env binding not allowed before compound command stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
zsh | 9 Env binding not allowed before compound command stdout: stderr: zsh: parse error near `for' |
zsh | 10 Trying to run keyword 'for' stdout: stderr: zsh: parse error near `for' |
bash-4 | 14 Env binding in readonly/declare is NOT exported! (pitfall) stdout: v=None v2=stderr: |
zsh | 15 assignments / array assignments not interpreted after 'echo' stdout: stderr: zsh: no matches found: b[0]=2 |
dash | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
bash-4 | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
mksh | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
dash | 18 'local x' does not set variable stdout: stderr: dash: 4: x: parameter not set |
zsh | 18 'local x' does not set variable stdout: stderr: |
dash | 19 'local -a x' does not set variable stdout: stderr: dash: 3: local: -a: bad variable name |
zsh | 19 'local -a x' does not set variable stdout: stderr: |
dash | 20 'local x' and then array assignment stdout: stderr: dash: 3: x[3]=foo: not found dash: 4: Bad substitution |
zsh | 20 'local x' and then array assignment stdout: ostderr: |
dash | 21 'declare -A' and then dict assignment stdout: stderr: dash: 1: declare: not found dash: 3: foo[bar]=value: not found dash: 4: Bad substitution |
mksh | 21 'declare -A' and then dict assignment stdout: stderr: mksh: <stdin>[1]: declare: not found mksh: <stdin>[3]: "bar": unexpected '"' |
dash | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
bash-4 | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=global x=globalstderr: |
mksh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=mutated-temp x=mutated-tempstderr: |
zsh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
dash | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
mksh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=stderr: |
zsh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
dash | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
bash-4 | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
zsh | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
dash | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
bash-4 | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = global :- operator = globalstderr: |
zsh | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
dash | 28 static assignment doesn't split stdout: ['a', 'a b c', 'a']stderr: |
dash | 29 aliased assignment doesn't split stdout: ['a', 'a']stderr: dash: 1: shopt: not found |
dash | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
bash-4 | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
mksh | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
dash | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
bash-4 | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
mksh | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
dash | 32 assign and glob stdout: ['*'] ['b']stderr: |
dash | 33 declare and glob stdout: ['']stderr: dash: 3: typeset: not found |
dash | 34 unset and shell funcs [dash stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\nbar\n' [dash status] Expected 127, got 0 stdout: bar barstderr: dash: 7: declare: not found dash: 9: declare: not found |
mksh | 34 unset and shell funcs [mksh stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\nbar\n' [mksh status] Expected 127, got 0 stdout: bar barstderr: mksh: <stdin>[7]: declare: not found mksh: <stdin>[9]: declare: not found |
zsh | 34 unset and shell funcs [zsh stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\nbar\n' [zsh status] Expected 127, got 0 stdout: bar barstderr: |
dash | 35 readonly $x where x='b c' stdout: stderr: dash: 4: a: is read only |
bash-4 | 35 readonly $x where x='b c' stdout: status=1 status=1 status=1stderr: bash-4.4: line 4: a: readonly variable bash-4.4: line 6: b: readonly variable bash-4.4: line 8: c: readonly variable |
mksh | 35 readonly $x where x='b c' stdout: stderr: mksh: <stdin>[4]: read-only: a |
dash | 36 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly stdout: stderr: dash: 1: Syntax error: "(" unexpected |
dash | 38 local a=loc $var c=loc stdout: global ['loc', 'global', 'loc']stderr: |
zsh | 39 redirect after assignment builtin (what's going on with dash/bash/mksh here?) stdout: donestderr: |
osh | 39 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [osh stderr] Expected 'STDERR\n', got '' stdout: donestderr: |
osh | 40 redirect after command sub (like case above but without assignment builtin) [osh stderr] Expected 'STDERR\n', got '' stdout: stdout=STDOUTstderr: |
bash-4 | 41 redirect after bare assignment stdout: donestderr: STDERR |
dash | 42 redirect after declare -p stdout: stderr: |
bash-4 | 42 redirect after declare -p stdout: stderr: declare -- foo="bar" |
osh | 42 redirect after declare -p stdout: stderr: declare -- foo=bar |
dash | 43 declare -a arr does not remove existing arrays (OSH regression) stdout: stderr: |
dash | 44 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |
mksh | 44 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |