spec test index / oilshell.org
70 passed, 15 OK, 22 not implemented, 0 BUG, 22 failed, 0 timeouts, 0 cases skipped 1 failed under osh
osh_.py | 1 printf -v %s [osh_.py stdout] Expected "['hello there']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$foo" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.cc | 1 printf -v %s [osh_.cc stdout] Expected "['hello there']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$foo" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.py | 3 printf -v a[1] [osh_.py stdout] Expected "status=0\n['a', 'foo', 'c']\n", got 'status=0\n' [osh_.py status] Expected 0, got 127 stdout: status=0stderr: argv.py "${a[@]}" ^~~~~~~ [ stdin ]:5: 'argv.py' not found |
osh_.cc | 3 printf -v a[1] [osh_.cc stdout] Expected "status=0\n['a', 'foo', 'c']\n", got 'status=0\n' [osh_.cc status] Expected 0, got 127 stdout: status=0stderr: argv.py "${a[@]}" ^~~~~~~ [ stdin ]:5: 'argv.py' not found |
osh_.py | 5 dynamic declare instead of %s [osh_.py stdout] Expected "['hello there']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$foo" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.cc | 5 dynamic declare instead of %s [osh_.cc stdout] Expected "['hello there']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$foo" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh | 6 dynamic declare instead of %q stdout: $'"quoted" with spaces and \\'stderr: |
osh_.py | 6 dynamic declare instead of %q stdout: $'"quoted" with spaces and \\'stderr: |
osh_.cc | 6 dynamic declare instead of %q stdout: $'"quoted" with spaces and \\'stderr: |
osh | 7 printf -v dynamic scope stdout: dollar=dollar -- dollar='$' mylocal=mylocal -- dollar='$' mylocal=stderr: |
osh_.py | 7 printf -v dynamic scope stdout: dollar=dollar -- dollar='$' mylocal=mylocal -- dollar='$' mylocal=stderr: |
osh_.cc | 7 printf -v dynamic scope stdout: dollar=dollar -- dollar='$' mylocal=mylocal -- dollar='$' mylocal=stderr: |
osh | 12 printf %6.4d -- precision means something different for integers !? stdout: stderr: [%6.4d]\n ^ (source.ArgvWord word_spid:2):1: printf precision can't be specified with type 'd' |
osh_.py | 12 printf %6.4d -- precision means something different for integers !? stdout: stderr: [%6.4d]\n ^ (source.ArgvWord word_spid:2):1: printf precision can't be specified with type 'd' |
osh_.cc | 12 printf %6.4d -- precision means something different for integers !? stdout: stderr: [%6.4d]\n ^ TODO:1: dynamic_fmt_dummy |
osh_.cc | 13 printf %6.4s does both truncation and padding [osh_.cc stdout] Expected '[ foo]\n[ foo]\n[foo ]\n[spam-eggs]\n[ spam]\n[spam ]\n', got '[ foo]\n[ foo\x00]\n[foo\x00 ]\n[spam-eggs]\n[ spam]\n[spam ]\n' stdout: [ foo] [ foo ] [foo ] [spam-eggs] [ spam] [spam ]stderr: |
osh | 18 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' |
osh_.py | 18 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' |
osh_.cc | 18 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' |
osh | 20 Unicode char with ' (osh is more strict) [osh stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: |
osh_.py | 20 Unicode char with ' (osh is more strict) [osh_.py stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: |
osh_.cc | 20 Unicode char with ' (osh is more strict) [osh_.cc stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: |
osh | 21 negative numbers with unsigned / octal / hex stdout: stderr: [%u]\n ^ (source.ArgvWord word_spid:2):1: fatal: Can't format negative number -42 with %u |
osh_.py | 21 negative numbers with unsigned / octal / hex stdout: stderr: [%u]\n ^ (source.ArgvWord word_spid:2):1: fatal: Can't format negative number -42 with %u |
osh_.cc | 21 negative numbers with unsigned / octal / hex stdout: stderr: printf '[%u]\n' -42 ^~~~~~ [ stdin ]:1: fatal: Can't format negative number -42 with %u |
osh | 22 printf floating point (not required, but they all implement it) stdout: stderr: [%f]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%.2f]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support floating point [%8.2f]\n ^ (source.ArgvWord word_spid:26):1: osh printf doesn't support floating point [%-8.2f]\n ^ (source.ArgvWord word_spid:40):1: osh printf doesn't support floating point [%-f]\n ^ (source.ArgvWord word_spid:55):1: osh printf doesn't support floating point [%-f]\n ^ (source.ArgvWord word_spid:67):1: osh printf doesn't support floating point |
osh_.py | 22 printf floating point (not required, but they all implement it) stdout: stderr: [%f]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%.2f]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support floating point [%8.2f]\n ^ (source.ArgvWord word_spid:26):1: osh printf doesn't support floating point [%-8.2f]\n ^ (source.ArgvWord word_spid:40):1: osh printf doesn't support floating point [%-f]\n ^ (source.ArgvWord word_spid:55):1: osh printf doesn't support floating point [%-f]\n ^ (source.ArgvWord word_spid:67):1: osh printf doesn't support floating point |
osh_.cc | 22 printf floating point (not required, but they all implement it) stdout: stderr: [%f]\n ^ TODO:1: osh printf doesn't support floating point [%.2f]\n ^ TODO:1: osh printf doesn't support floating point [%8.2f]\n ^ TODO:1: osh printf doesn't support floating point [%-8.2f]\n ^ TODO:1: osh printf doesn't support floating point [%-f]\n ^ TODO:1: osh printf doesn't support floating point [%-f]\n ^ TODO:1: osh printf doesn't support floating point |
osh | 23 printf floating point with - and 0 stdout: ---stderr: [%8.4f]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%08.4f]\n ^ (source.ArgvWord word_spid:16):1: osh printf doesn't support floating point [%8.04f]\n ^ (source.ArgvWord word_spid:31):1: Expected a printf format character [%08.04f]\n ^ (source.ArgvWord word_spid:48):1: Expected a printf format character [%-8.4f]\n ^ (source.ArgvWord word_spid:67):1: osh printf doesn't support floating point [%-08.4f]\n ^ (source.ArgvWord word_spid:82):1: osh printf doesn't support floating point [%-8.04f]\n ^ (source.ArgvWord word_spid:98):1: Expected a printf format character [%-08.04f]\n ^ (source.ArgvWord word_spid:113):1: Expected a printf format character |
osh_.py | 23 printf floating point with - and 0 stdout: ---stderr: [%8.4f]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%08.4f]\n ^ (source.ArgvWord word_spid:16):1: osh printf doesn't support floating point [%8.04f]\n ^ (source.ArgvWord word_spid:31):1: Expected a printf format character [%08.04f]\n ^ (source.ArgvWord word_spid:48):1: Expected a printf format character [%-8.4f]\n ^ (source.ArgvWord word_spid:67):1: osh printf doesn't support floating point [%-08.4f]\n ^ (source.ArgvWord word_spid:82):1: osh printf doesn't support floating point [%-8.04f]\n ^ (source.ArgvWord word_spid:98):1: Expected a printf format character [%-08.04f]\n ^ (source.ArgvWord word_spid:113):1: Expected a printf format character |
osh_.cc | 23 printf floating point with - and 0 stdout: ---stderr: [%8.4f]\n ^ TODO:1: osh printf doesn't support floating point [%08.4f]\n ^ TODO:1: osh printf doesn't support floating point [%8.04f]\n ^ TODO:1: Expected a printf format character [%08.04f]\n ^ TODO:1: Expected a printf format character [%-8.4f]\n ^ TODO:1: osh printf doesn't support floating point [%-08.4f]\n ^ TODO:1: osh printf doesn't support floating point [%-8.04f]\n ^ TODO:1: Expected a printf format character [%-08.04f]\n ^ TODO:1: Expected a printf format character |
osh | 24 printf eE fF gG stdout: stderr: [%e]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%E]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support floating point [%f]\n ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support floating point [%g]\n ^ (source.ArgvWord word_spid:35):1: osh printf doesn't support floating point [%G]\n ^ (source.ArgvWord word_spid:46):1: osh printf doesn't support floating point |
osh_.py | 24 printf eE fF gG stdout: stderr: [%e]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support floating point [%E]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support floating point [%f]\n ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support floating point [%g]\n ^ (source.ArgvWord word_spid:35):1: osh printf doesn't support floating point [%G]\n ^ (source.ArgvWord word_spid:46):1: osh printf doesn't support floating point |
osh_.cc | 24 printf eE fF gG stdout: stderr: [%e]\n ^ TODO:1: osh printf doesn't support floating point [%E]\n ^ TODO:1: osh printf doesn't support floating point [%f]\n ^ TODO:1: osh printf doesn't support floating point [%g]\n ^ TODO:1: osh printf doesn't support floating point [%G]\n ^ TODO:1: osh printf doesn't support floating point |
osh_.py | 25 printf backslash escapes [osh_.py stdout] Expected "['a\\tb']\n['\\xe2\\x98\\xa0']\n['$e']\n['\\x1f7']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$(printf 'a\tb')" ^~~~~~~ [ stdin ]:1: 'argv.py' not found argv.py "$(printf '\xE2\x98\xA0')" ^~~~~~~ [ stdin ]:2: 'argv.py' not found argv.py "$(printf '\044e')" ^~~~~~~ [ stdin ]:3: 'argv.py' not found argv.py "$(printf '\0377')" # out of range ^~~~~~~ [ stdin ]:4: 'argv.py' not found |
osh_.cc | 25 printf backslash escapes [osh_.cc stdout] Expected "['a\\tb']\n['\\xe2\\x98\\xa0']\n['$e']\n['\\x1f7']\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.py | 26 printf octal backslash escapes [osh_.py stdout] Expected "['\\x1f7']\n['\\xff']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$(printf '\0377')" ^~~~~~~ [ stdin ]:1: 'argv.py' not found argv.py "$(printf '\377')" ^~~~~~~ [ stdin ]:2: 'argv.py' not found |
osh_.cc | 26 printf octal backslash escapes [osh_.cc stdout] Expected "['\\x1f7']\n['\\xff']\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.py | 27 printf unicode backslash escapes [osh_.py stdout] Expected "['\\xe2\\x98\\xa0']\n['\\xd9\\x9f']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$(printf '\u2620')" ^~~~~~~ [ stdin ]:1: 'argv.py' not found argv.py "$(printf '\U0000065f')" ^~~~~~~ [ stdin ]:2: 'argv.py' not found |
osh_.cc | 27 printf unicode backslash escapes [osh_.cc stdout] Expected "['\\xe2\\x98\\xa0']\n['\\xd9\\x9f']\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh | 32 printf %c -- doesn't respect UTF-8! Bad. stdout: [μμ] 0stderr: %c ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support single characters (bytes) |
osh_.py | 32 printf %c -- doesn't respect UTF-8! Bad. [osh_.py stdout] Expected '[\xce\xbc\xce\xbc]\n0\n', got '[\xce\xbc\xce\xbc]\n' [osh_.py status] Expected 0, got 127 stdout: [μμ]stderr: printf '%c' "$twomu" | wc --bytes ^~ [ stdin ]:3: 'wc' not found %c ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support single characters (bytes) |
osh_.cc | 32 printf %c -- doesn't respect UTF-8! Bad. [osh_.cc stdout] Expected '[\xce\xbc\xce\xbc]\n0\n', got '[\xce\xbc\xce\xbc]\n' [osh_.cc status] Expected 0, got -6 stdout: [μμ]stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh | 33 printf invalid format stdout: status=2 status=2stderr: %z ^ (source.ArgvWord word_spid:2):1: Invalid printf format character %-z ^ (source.ArgvWord word_spid:17):1: Invalid printf format character |
osh_.py | 33 printf invalid format stdout: status=2 status=2stderr: %z ^ (source.ArgvWord word_spid:2):1: Invalid printf format character %-z ^ (source.ArgvWord word_spid:17):1: Invalid printf format character |
osh_.cc | 33 printf invalid format stdout: status=2 status=2stderr: %z ^ TODO:1: Invalid printf format character %-z ^ TODO:1: Invalid printf format character |
osh | 36 printf + and space flags stdout: stderr: [%+d]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support the '+' flag [%+d]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support the '+' flag [% d]\n ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support the ' ' flag [% d]\n ^ (source.ArgvWord word_spid:35):1: osh printf doesn't support the ' ' flag |
osh_.py | 36 printf + and space flags stdout: stderr: [%+d]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support the '+' flag [%+d]\n ^ (source.ArgvWord word_spid:13):1: osh printf doesn't support the '+' flag [% d]\n ^ (source.ArgvWord word_spid:24):1: osh printf doesn't support the ' ' flag [% d]\n ^ (source.ArgvWord word_spid:35):1: osh printf doesn't support the ' ' flag |
osh_.cc | 36 printf + and space flags stdout: stderr: [%+d]\n ^ TODO:1: osh printf doesn't support the '+' flag [%+d]\n ^ TODO:1: osh printf doesn't support the '+' flag [% d]\n ^ TODO:1: osh printf doesn't support the ' ' flag [% d]\n ^ TODO:1: osh printf doesn't support the ' ' flag |
osh | 37 printf # flag stdout: ---stderr: [%#o][%#o]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support the '#' flag [%#x][%#x]\n ^ (source.ArgvWord word_spid:15):1: osh printf doesn't support the '#' flag [%#X][%#X]\n ^ (source.ArgvWord word_spid:28):1: osh printf doesn't support the '#' flag [%.0f][%#.0f]\n ^ (source.ArgvWord word_spid:45):1: osh printf doesn't support floating point [%g][%#g]\n ^ (source.ArgvWord word_spid:60):1: osh printf doesn't support floating point |
osh_.py | 37 printf # flag stdout: ---stderr: [%#o][%#o]\n ^ (source.ArgvWord word_spid:2):1: osh printf doesn't support the '#' flag [%#x][%#x]\n ^ (source.ArgvWord word_spid:15):1: osh printf doesn't support the '#' flag [%#X][%#X]\n ^ (source.ArgvWord word_spid:28):1: osh printf doesn't support the '#' flag [%.0f][%#.0f]\n ^ (source.ArgvWord word_spid:45):1: osh printf doesn't support floating point [%g][%#g]\n ^ (source.ArgvWord word_spid:60):1: osh printf doesn't support floating point |
osh_.cc | 37 printf # flag stdout: ---stderr: [%#o][%#o]\n ^ TODO:1: osh printf doesn't support the '#' flag [%#x][%#x]\n ^ TODO:1: osh printf doesn't support the '#' flag [%#X][%#X]\n ^ TODO:1: osh printf doesn't support the '#' flag [%.0f][%#.0f]\n ^ TODO:1: osh printf doesn't support floating point [%g][%#g]\n ^ TODO:1: osh printf doesn't support floating point |
osh | 38 Runtime error for invalid integer stdout: status=1 status=1stderr: printf '%d\n' $x ^~ [ stdin ]:2: printf expected an integer, got '3abc' printf '%d\n' xyz ^~~ [ stdin ]:4: printf expected an integer, got 'xyz' |
osh_.py | 38 Runtime error for invalid integer stdout: status=1 status=1stderr: printf '%d\n' $x ^~ [ stdin ]:2: printf expected an integer, got '3abc' printf '%d\n' xyz ^~~ [ stdin ]:4: printf expected an integer, got 'xyz' |
osh_.cc | 38 Runtime error for invalid integer stdout: status=1 status=1stderr: printf '%d\n' $x ^~ [ stdin ]:2: printf expected an integer, got '3abc' printf '%d\n' xyz ^~~ [ stdin ]:4: printf expected an integer, got 'xyz' |
osh_.cc | 39 %(strftime format)T [osh_.cc stdout] Expected '2019-05-16\n2019-05-15\nstatus=0\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:115: int posix::putenv(Str *, Str *): Assertion `0' failed. |
osh_.cc | 40 %(strftime format)T doesn't respect TZ if not exported [osh_.cc stdout] Expected 'not equal\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 41 %(strftime format)T TZ in environ but not in shell's memory [osh_.cc stdout] Expected 'not equal\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 42 %10.5(strftime format)T [osh_.cc stdout] Expected '[ 2019-]\n[ 2019-]\nstatus=0\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:115: int posix::putenv(Str *, Str *): Assertion `0' failed. |