| status | osh | osh-cpp | |
| pass | 7 | 4 | |
| FAIL | 0 | 3 | |
| total | 7 | 7 | |
| case | osh | osh-cpp | description |
| 0 | pass | pass | OSH source code doesn't have to be valid Unicode (like other shells) |
| 1 | pass | pass | Unicode escapes \u03bc \U000003bc in $'', echo -e, printf |
| 2 | pass | FAIL | Max code point U+10ffff can escaped with $'' printf echo -e |
| details | |||
| 3 | pass | pass | $'' does NOT check that 0x110000 is too big at parse time |
| 4 | pass | pass | $'' does not check for surrogate range at parse time |
| 5 | pass | FAIL | printf / echo -e do NOT check max code point at runtime |
| details | |||
| 6 | pass | FAIL | printf / echo -e do NOT check surrogates at runtime |
| details |
11 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped
| osh-cpp | 2 Max code point U+10ffff can escaped with $'' printf echo -e [osh-cpp stdout] Expected "'\\xf4\\x8f\\xbf\\xbf'\n'\\xf4\\x8f\\xbf\\xbf'\n'\\xf4\\x8f\\xbf\\xbf'\n" Got "'\\xf4\\x8f\\xbf\\xbf'\n" [osh-cpp status] Expected 0 Got 2 stdout: '\xf4\x8f\xbf\xbf'stderr: py-repr $(echo -e '\U0010ffff')
^
[ stdin ]:8: Invalid word while parsing command list
|
| osh-cpp | 5 printf / echo -e do NOT check max code point at runtime [osh-cpp stdout] Expected "status=0\n'\\xf4\\x90\\x80\\x80'\nstatus=0\n'\\xf4\\x90\\x80\\x80'\n" Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: e="$(echo -e '\U00110000')"
^
[ stdin ]:7: Invalid word while parsing command list
|
| osh-cpp | 6 printf / echo -e do NOT check surrogates at runtime [osh-cpp stdout] Expected "status=0\n'\\xed\\xb0\\x80'\nstatus=0\n'\\xed\\xb0\\x80'\nstatus=0\n'\\xed\\xb0\\x80'\nstatus=0\n'\\xed\\xb0\\x80'\n" Got '' [osh-cpp status] Expected 0 Got 2 stdout: stderr: e="$(echo -e '\udc00')"
^
[ stdin ]:7: Invalid word while parsing command list
|