unicode () { run-file unicode "$@" } 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
status | bash | mksh | zsh | osh | |
pass | 7 | 3 | 5 | 7 | |
ok | 0 | 0 | 1 | 0 | |
BUG | 0 | 4 | 1 | 0 | |
total | 7 | 7 | 7 | 7 | |
case | bash | mksh | zsh | osh | description |
0 | pass | pass | pass | pass | OSH source code doesn't have to be valid Unicode (like other shells) |
1 | pass | pass | pass | pass | Unicode escapes \u03bc \U000003bc in $'', echo -e, printf |
2 | pass | BUG | pass | pass | Max code point U+10ffff can escaped with $'' printf echo -e |
details | |||||
3 | pass | BUG | pass | pass | $'' does NOT check that 0x110000 is too big at parse time |
details | |||||
4 | pass | pass | ok | pass | $'' does not check for surrogate range at parse time |
details | |||||
5 | pass | BUG | pass | pass | printf / echo -e do NOT check max code point at runtime |
details | |||||
6 | pass | BUG | BUG | pass | printf / echo -e do NOT check surrogates at runtime |
details | details |
22 passed, 1 OK, 0 not implemented, 5 BUG, 0 failed, 0 timeouts, 0 cases skipped
mksh | 2 Max code point U+10ffff can escaped with $'' printf echo -e stdout: '\xef\xbf\xbd' '\xef\xbf\xbd' '\xf4\x8f\xbf\xbf'stderr: |
mksh | 3 $'' does NOT check that 0x110000 is too big at parse time stdout: '\xef\xbf\xbd'stderr: |
zsh | 4 $'' does not check for surrogate range at parse time stdout: stderr: zsh: character not in range |
mksh | 5 printf / echo -e do NOT check max code point at runtime stdout: stderr: |
mksh | 6 printf / echo -e do NOT check surrogates at runtime stdout: stderr: |
zsh | 6 printf / echo -e do NOT check surrogates at runtime stdout: status=0 '' status=0 '' status=0 '' status=0 ''stderr: zsh: character not in range zsh: character not in range zsh: character not in range zsh: character not in range |