var-op-len () { sh-spec spec/var-op-len.test.sh ${REF_SHELLS[@]} $ZSH $OSH_LIST "$@" }
spec test index / oilshell.org
| status | dash | bash | mksh | zsh | osh | |
| pass | 2 | 5 | 3 | 5 | 8 | |
| ok | 1 | 1 | 1 | 0 | 0 | |
| N-I | 4 | 0 | 4 | 0 | 0 | |
| BUG | 1 | 2 | 0 | 3 | 0 | |
| total | 8 | 8 | 8 | 8 | 8 | |
| case | dash | bash | mksh | zsh | osh | description | 
| 0 | pass | pass | pass | pass | pass | String length | 
| 1 | N-I | pass | N-I | pass | pass | Unicode string length (UTF-8) | 
| details | details | |||||
| 2 | N-I | pass | N-I | pass | pass | Unicode string length (spec/testdata/utf8-chars.txt) | 
| details | details | |||||
| 3 | N-I | BUG | N-I | BUG | pass | String length with incomplete utf-8 | 
| details | details | details | details | |||
| 4 | N-I | BUG | N-I | BUG | pass | String length with invalid utf-8 continuation bytes | 
| details | details | details | details | |||
| 5 | pass | pass | pass | pass | pass | Length of undefined variable | 
| 6 | ok | pass | pass | pass | pass | Length of undefined variable with nounset | 
| details | ||||||
| 7 | BUG | ok | ok | BUG | pass | Length operator can't be followed by test operator | 
| details | details | details | details | 
23 passed, 3 OK, 8 not implemented, 6 BUG, 0 failed, 0 timeouts, 0 cases skipped
| dash | 1 Unicode string length (UTF-8) stdout: 9stderr:  | 
| mksh | 1 Unicode string length (UTF-8) stdout: 4stderr:  | 
| dash | 2 Unicode string length (spec/testdata/utf8-chars.txt) stdout: 13stderr:  | 
| mksh | 2 Unicode string length (spec/testdata/utf8-chars.txt) stdout: 13stderr:  | 
| dash | 3 String length with incomplete utf-8 stdout: 0 1 2 3 4 5 6 7 8 9 10 11 12 13stderr:  | 
| bash | 3 String length with incomplete utf-8 stdout: 0 1 2 3 3 4 5 6 5 6 7 8 9 7stderr:  | 
| mksh | 3 String length with incomplete utf-8 stdout: 0 1 2 3 4 5 6 7 8 9 10 11 12 13stderr:  | 
| zsh | 3 String length with incomplete utf-8 stdout: 0 1 2 3 3 4 5 6 5 6 7 8 9 7stderr:  | 
| dash | 4 String length with invalid utf-8 continuation bytes stdout: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 20stderr:  | 
| bash | 4 String length with invalid utf-8 continuation bytes stdout: 1 2 3 4 4 5 6 7 6 7 8 9 10 8 8stderr:  | 
| mksh | 4 String length with invalid utf-8 continuation bytes stdout: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14stderr:  | 
| zsh | 4 String length with invalid utf-8 continuation bytes stdout: 1 2 3 4 4 5 6 7 6 7 8 9 10 8 8stderr:  | 
| dash | 6 Length of undefined variable with nounset stdout: stderr: dash: 2: undef: parameter not set  | 
| dash | 7 Length operator can't be followed by test operator stdout: 0 0 3stderr:  | 
| bash | 7 Length operator can't be followed by test operator stdout: stderr: bash: line 1: ${#x-default}: bad substitution
bash: line 4: ${#x-default}: bad substitution
bash: line 7: ${#x-default}: bad substitution
 | 
| mksh | 7 Length operator can't be followed by test operator stdout: stderr: mksh: <stdin>[1]: ${#x-default}: bad substitution
 | 
| zsh | 7 Length operator can't be followed by test operator stdout: 7 0 3stderr:  |