spec test index / oilshell.org
| case | dash | bash | mksh | osh | osh-byterun | description |
| 0 | pass | pass | pass | pass | pass | IFS is scoped |
| 1 | pass | pass | pass | pass | pass | Tilde sub is not split, but var sub is |
| 2 | pass | pass | pass | pass | pass | Word splitting |
| 3 | pass | pass | pass | pass | pass | Word splitting 2 |
| 4 | pass | pass | pass | pass | pass | $* |
| 5 | pass | pass | pass | pass | pass | "$*" |
| 6 | pass | pass | pass | pass | pass | $@ |
| 7 | pass | pass | pass | pass | pass | "$@" |
| 8 | pass | pass | pass | pass | pass | empty argv |
| 9 | pass | pass | pass | pass | pass | Word elision with space |
| 10 | pass | pass | pass | pass | pass | Word elision with non-whitespace IFS |
| 11 | pass | pass | pass | pass | pass | Leading/trailing word elision with non-whitespace IFS |
| 12 | pass | pass | pass | pass | pass | Leading ' ' vs leading ' _ ' |
| 13 | pass | pass | pass | pass | pass | Multiple non-whitespace IFS chars. |
| 14 | pass | pass | pass | pass | pass | IFS with whitespace and non-whitepace. |
| 15 | pass | pass | pass | pass | pass | empty $@ and $* is elided |
| 16 | pass | pass | pass | pass | pass | unquoted empty arg is elided |
| 17 | pass | pass | pass | pass | pass | unquoted whitespace arg is elided |
| 18 | pass | pass | pass | pass | pass | empty literals are not elided |
| 19 | pass | pass | pass | pass | pass | no splitting when IFS is empty |
| 20 | pass | pass | pass | pass | pass | default value can yield multiple words |
| 21 | pass | pass | pass | pass | pass | default value can yield multiple words with part joining |
| 22 | pass | pass | pass | pass | pass | default value with unquoted IFS char |
| 23 | N-I | pass | pass | pass | pass | IFS empty doesn't do splitting |
| details | ||||||
| 24 | N-I | pass | pass | pass | pass | IFS unset behaves like $' \t\n' |
| details | ||||||
| 25 | pass | pass | pass | FAIL | FAIL | IFS='\' |
| details | details | |||||
| 26 | pass | pass | pass | FAIL | FAIL | IFS='\ ' |
| details | details | |||||
| 27 | pass | pass | pass | pass | pass | IFS characters are glob metacharacters |
| 28 | pass | pass | pass | pass | pass | TODO |
139 passed, 0 ok, 2 known unimplemented, 0 known bugs, 2 failed, 0 skipped
| dash | 23 IFS empty doesn't do splitting stdout: ['-e a b\tc']stderr: |
| dash | 24 IFS unset behaves like $' \t\n' stdout: ['-e', 'a', 'b', 'c']stderr: |
| osh | 25 IFS='\' [osh stdout] Expected "['a', 'b']\n", got "['a', '', '', '', 'b']\n" stdout: ['a', '', '', '', 'b']stderr: |
| osh-byterun | 25 IFS='\' [osh-byterun stdout] Expected "['a', 'b']\n", got "['a', '', '', '', 'b']\n" stdout: ['a', '', '', '', 'b']stderr: |
| osh | 26 IFS='\ ' [osh stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']\n" stdout: ['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']stderr: |
| osh-byterun | 26 IFS='\ ' [osh-byterun stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']\n" stdout: ['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']stderr: |