spec test index / oilshell.org
96 passed, 18 OK, 20 not implemented, 0 BUG, 13 failed, 0 timeouts, 0 cases skipped 1 failed under osh
osh_.cc | 3 printf -v a[1] [osh_.cc stdout] Expected "status=0\n['a', 'foo', 'c']\n", got "['a', 'foo', 'c']\nstatus=0\n" stdout: ['a', 'foo', 'c'] status=0stderr: dumb_alloc: gNumNew = 2450 gNumDelete = 241 gMemPos = 81312 gNumMalloc = 308 gNumFree = 0 gMemPos2 = 14224 |
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: dumb_alloc: gNumNew = 1981 gNumDelete = 165 gMemPos = 68288 gNumMalloc = 132 gNumFree = 0 gMemPos2 = 11472 |
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: dumb_alloc: gNumNew = 3405 gNumDelete = 380 gMemPos = 107968 gNumMalloc = 635 gNumFree = 0 gMemPos2 = 19408 |
osh_.cc | 17 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: dumb_alloc: gNumNew = 2610 gNumDelete = 274 gMemPos = 86144 gNumMalloc = 397 gNumFree = 0 gMemPos2 = 15600 |
osh | 22 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' |
osh_.py | 22 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' |
osh_.cc | 22 empty string (osh is more strict) stdout: stderr: printf '%d\n' '' ^ [ stdin ]:1: printf expected an integer, got '' dumb_alloc: gNumNew = 1764 gNumDelete = 123 gMemPos = 61440 gNumMalloc = 79 gNumFree = 0 gMemPos2 = 10480 |
osh | 24 Unicode char with ' (osh is more strict) [osh stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: |
osh_.py | 24 Unicode char with ' (osh is more strict) [osh_.py stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: |
osh_.cc | 24 Unicode char with ' (osh is more strict) [osh_.cc stdout] Expected '3bc\n', got 'ce\n' stdout: cestderr: dumb_alloc: gNumNew = 1777 gNumDelete = 129 gMemPos = 61728 gNumMalloc = 84 gNumFree = 0 gMemPos2 = 10544 |
osh | 25 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 | 25 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 | 25 negative numbers with unsigned / octal / hex stdout: stderr: printf '[%u]\n' -42 ^~~~~~ [ stdin ]:1: fatal: Can't format negative number -42 with %u dumb_alloc: gNumNew = 1770 gNumDelete = 125 gMemPos = 61616 gNumMalloc = 80 gNumFree = 0 gMemPos2 = 10496 |
osh | 26 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 | 26 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 | 26 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 dumb_alloc: gNumNew = 2632 gNumDelete = 253 gMemPos = 86896 gNumMalloc = 423 gNumFree = 0 gMemPos2 = 15968 |
osh | 27 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 | 27 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 | 27 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 dumb_alloc: gNumNew = 3058 gNumDelete = 313 gMemPos = 98336 gNumMalloc = 567 gNumFree = 0 gMemPos2 = 18272 |
osh | 28 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 | 28 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 | 28 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 dumb_alloc: gNumNew = 2401 gNumDelete = 225 gMemPos = 79280 gNumMalloc = 301 gNumFree = 0 gMemPos2 = 14016 |
osh_.cc | 29 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.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 30 printf octal backslash escapes [osh_.cc stdout] Expected "['\\x1f7']\n['\\xff']\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 31 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.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh | 36 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 | 36 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_.cc | 36 printf %c -- doesn't respect UTF-8! Bad. [osh_.cc stdout] Expected '[\xce\xbc\xce\xbc]\n0\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh | 37 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 | 37 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 | 37 printf invalid format stdout: status=2 status=2stderr: %z ^ TODO:1: Invalid printf format character %-z ^ TODO:1: Invalid printf format character dumb_alloc: gNumNew = 2184 gNumDelete = 192 gMemPos = 72688 gNumMalloc = 226 gNumFree = 0 gMemPos2 = 12816 |
osh | 40 printf negative numbers stdout: [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 status=1 status=1stderr: printf '[%d] ' ' -42z' ^ [ stdin ]:13: printf expected an integer, got ' -42z' printf '[%i] ' ' -42z' ^ [ stdin ]:15: printf expected an integer, got ' -42z' |
osh_.py | 40 printf negative numbers stdout: [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 status=1 status=1stderr: printf '[%d] ' ' -42z' ^ [ stdin ]:13: printf expected an integer, got ' -42z' printf '[%i] ' ' -42z' ^ [ stdin ]:15: printf expected an integer, got ' -42z' |
osh_.cc | 40 printf negative numbers stdout: [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 [-42] status=0 status=1 status=1stderr: printf '[%d] ' ' -42z' ^ [ stdin ]:13: printf expected an integer, got ' -42z' printf '[%i] ' ' -42z' ^ [ stdin ]:15: printf expected an integer, got ' -42z' dumb_alloc: gNumNew = 3880 gNumDelete = 477 gMemPos = 120592 gNumMalloc = 804 gNumFree = 0 gMemPos2 = 22096 |
osh | 41 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 | 41 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 | 41 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 dumb_alloc: gNumNew = 2222 gNumDelete = 197 gMemPos = 74208 gNumMalloc = 228 gNumFree = 0 gMemPos2 = 12848 |
osh | 42 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 | 42 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 | 42 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 dumb_alloc: gNumNew = 2592 gNumDelete = 244 gMemPos = 84688 gNumMalloc = 350 gNumFree = 0 gMemPos2 = 14800 |
osh | 43 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 | 43 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 | 43 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' dumb_alloc: gNumNew = 2258 gNumDelete = 199 gMemPos = 75152 gNumMalloc = 268 gNumFree = 0 gMemPos2 = 13520 |
osh_.cc | 44 %(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.opt: cpp/posix.h:115: int posix::putenv(Str*, Str*): Assertion `0' failed. |
osh_.cc | 45 %(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.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 46 %(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.opt: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.cc | 47 %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.opt: cpp/posix.h:115: int posix::putenv(Str*, Str*): Assertion `0' failed. |