spec test index / oilshell.org
167 passed, 16 ok, 4 known unimplemented, 21 known bugs, 7 failed, 0 skipped
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: |
dash | 9 Env binding not allowed before compound command stdout: stderr: _tmp/spec-bin/dash: 1: for: not found |
mksh | 9 Env binding not allowed before compound command stdout: stderr: _tmp/spec-bin/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' |
dash | 14 Env binding in readonly/declare disallowed stdout: v=Nonestderr: |
bash | 14 Env binding in readonly/declare disallowed stdout: v=Nonestderr: |
mksh | 14 Env binding in readonly/declare disallowed stdout: v=Nonestderr: |
zsh | 14 Env binding in readonly/declare disallowed stdout: v=Nonestderr: |
zsh | 15 assignments / array assignments not interpreted after 'echo' stdout: stderr: zsh: no matches found: b[0]=2 |
zsh | 16 dynamic local variables stdout: -y a=b- -- -y a=b- --stderr: |
osh | 16 dynamic local variables [osh stdout] Expected '-y a=b-\n--\n-y-\n-b-\n', got '' [osh status] Expected 0, got 2 stdout: stderr: local "$1" # Only x is assigned here ^ [ stdin ]:2: Variable names must be unquoted constants |
osh_ALT | 16 dynamic local variables [osh_ALT stdout] Expected '-y a=b-\n--\n-y-\n-b-\n', got '' [osh_ALT status] Expected 0, got 2 stdout: stderr: local "$1" # Only x is assigned here ^ [ stdin ]:2: Variable names must be unquoted constants |
dash | 17 'local x' does not set variable stdout: stderr: _tmp/spec-bin/dash: 4: x: parameter not set |
zsh | 17 'local x' does not set variable stdout: stderr: |
dash | 18 'local -a x' does not set variable stdout: stderr: _tmp/spec-bin/dash: 3: local: -a: bad variable name |
zsh | 18 'local -a x' does not set variable stdout: stderr: |
dash | 19 'local x' and then array assignment stdout: stderr: _tmp/spec-bin/dash: 3: x[3]=foo: not found _tmp/spec-bin/dash: 4: Bad substitution |
zsh | 19 'local x' and then array assignment stdout: ostderr: |
dash | 20 'declare -A' and then dict assignment stdout: stderr: _tmp/spec-bin/dash: 1: declare: not found _tmp/spec-bin/dash: 3: foo[bar]=value: not found _tmp/spec-bin/dash: 4: Bad substitution |
mksh | 20 'declare -A' and then dict assignment stdout: stderr: _tmp/spec-bin/mksh: <stdin>[1]: declare: not found _tmp/spec-bin/mksh: <stdin>[3]: "bar": unexpected '"' |
dash | 23 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=mutated-tempstderr: |
bash | 23 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=global x=globalstderr: |
mksh | 23 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=mutated-temp x=mutated-tempstderr: |
dash | 24 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=stderr: |
bash | 24 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x=global x=globalstderr: |
mksh | 24 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=stderr: |
mksh | 25 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = global :- operator = globalstderr: |
bash | 26 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = global :- operator = globalstderr: |
mksh | 26 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = temp-binding :- operator = temp-bindingstderr: |
dash | 27 static assignment doesn't split stdout: ['a', 'a b c', 'a']stderr: |
osh | 27 static assignment doesn't split [osh stdout] Expected "['a b c', 'a b c', 'a b c']\n", got "['a', 'a b c', 'a b c']\n" stdout: ['a', 'a b c', 'a b c']stderr: |
osh_ALT | 27 static assignment doesn't split [osh_ALT stdout] Expected "['a b c', 'a b c', 'a b c']\n", got "['a', 'a b c', 'a b c']\n" stdout: ['a', 'a b c', 'a b c']stderr: |
dash | 28 aliased assignment doesn't split stdout: ['a', 'a']stderr: _tmp/spec-bin/dash: 1: shopt: not found |
osh | 28 aliased assignment doesn't split [osh stdout] Expected "['a b c', 'a b c']\n", got '' [osh status] Expected 0, got 2 stdout: stderr: readonly ro=$words ^ [ expansion of alias 'r' ]:1: Invalid variable name '' |
osh_ALT | 28 aliased assignment doesn't split [osh_ALT stdout] Expected "['a b c', 'a b c']\n", got '' [osh_ALT status] Expected 0, got 2 stdout: stderr: readonly ro=$words ^ [ expansion of alias 'r' ]:1: Invalid variable name '' |
zsh | 29 assignment using dynamic keyword splits stdout: ['a b c', 'a b c']stderr: |
osh | 29 assignment using dynamic keyword splits [osh stdout] Expected "['a', 'a']\n", got "['a', '']\n" stdout: ['a', '']stderr: $r ro=$words ^~ [ stdin ]:5: 'readonly' not found |
osh_ALT | 29 assignment using dynamic keyword splits [osh_ALT stdout] Expected "['a', 'a']\n", got "['a', '']\n" stdout: ['a', '']stderr: $r ro=$words ^~ [ stdin ]:5: 'readonly' not found |
zsh | 30 assignment using dynamic var names doesn't split stdout: ['a b c', 'a b c'] ['a b c', 'a b c']stderr: |
osh | 30 assignment using dynamic var names doesn't split [osh stdout] Expected "['a', 'a']\n['a b c', 'a b c']\n", got '' [osh status] Expected 0, got 2 stdout: stderr: readonly $arg_ro ^~~~~~~ [ stdin ]:5: Variable names must be unquoted constants |
osh_ALT | 30 assignment using dynamic var names doesn't split [osh_ALT stdout] Expected "['a', 'a']\n['a b c', 'a b c']\n", got '' [osh_ALT status] Expected 0, got 2 stdout: stderr: readonly $arg_ro ^~~~~~~ [ stdin ]:5: Variable names must be unquoted constants |
dash | 31 assign and glob stdout: ['*'] ['b']stderr: |
osh | 31 assign and glob [osh stdout] Expected "['*']\n['*']\n", got "['*']\n['b']\n" stdout: ['*'] ['b']stderr: |
osh_ALT | 31 assign and glob [osh_ALT stdout] Expected "['*']\n['*']\n", got "['*']\n['b']\n" stdout: ['*'] ['b']stderr: |
dash | 32 declare and glob stdout: ['']stderr: _tmp/spec-bin/dash: 3: typeset: not found |
bash | 33 readonly $x where x='b c' makes them readonly (but NOT defined) stdout: status=1 status=1 status=1stderr: _tmp/spec-bin/bash: line 4: a: readonly variable _tmp/spec-bin/bash: line 6: b: readonly variable _tmp/spec-bin/bash: line 8: c: readonly variable |
zsh | 33 readonly $x where x='b c' makes them readonly (but NOT defined) stdout: stderr: readonly: not valid in this context: b c |
dash | 34 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly stdout: stderr: _tmp/spec-bin/dash: 1: Syntax error: "(" unexpected |
dash | 36 local a=loc $vars d=loc (splitting in local) stdout: global global ['loc', 'global', 'global', 'loc']stderr: |
zsh | 36 local a=loc $vars d=loc (splitting in local) stdout: global globalstderr: f:local:1: not valid in this context: b c |
osh | 36 local a=loc $vars d=loc (splitting in local) [osh stdout] Expected "global global\n['loc', '', '', 'loc']\n", got 'global global\n' [osh status] Expected 0, got 2 stdout: global globalstderr: local a=loc $vars d=loc ^~~~~ [ stdin ]:6: Variable names must be unquoted constants |
osh_ALT | 36 local a=loc $vars d=loc (splitting in local) [osh_ALT stdout] Expected "global global\n['loc', '', '', 'loc']\n", got 'global global\n' [osh_ALT status] Expected 0, got 2 stdout: global globalstderr: local a=loc $vars d=loc ^~~~~ [ stdin ]:6: Variable names must be unquoted constants |