spec test index / oilshell.org
status | osh | osh_.py | osh_.cc | |
pass | 8 | 8 | 5 | |
ok | 5 | 5 | 1 | |
FAIL | 3 | 3 | 10 | |
total | 16 | 16 | 16 | |
case | osh | osh_.py | osh_.cc | description |
0 | pass | pass | FAIL | Lower Case with , and ,, |
details | ||||
1 | pass | pass | FAIL | Upper Case with ^ and ^^ |
details | ||||
2 | FAIL | FAIL | FAIL | Lower Case with constant string (VERY WEIRD) |
details | details | details | ||
3 | FAIL | FAIL | FAIL | Lower Case glob |
details | details | details | ||
4 | pass | pass | pass | ${x@Q} |
5 | ok | ok | ok | ${array@Q} and ${array[@]@Q} |
details | details | details | ||
6 | pass | pass | pass | ${!prefix@} ${!prefix*} yields sorted array of var names |
7 | pass | pass | pass | ${!prefix@} matches var name (regression) |
8 | pass | pass | pass | ${var@a} for attributes |
9 | pass | pass | pass | ${var@a} error conditions |
10 | ok | ok | FAIL | undef and @P @Q @a |
details | details | details | ||
11 | ok | ok | FAIL | argv array and @P @Q @a |
details | details | details | ||
12 | ok | ok | FAIL | assoc array and @P @Q @a |
details | details | details | ||
13 | ok | ok | FAIL | ${!var[@]@X} |
details | details | details | ||
14 | pass | pass | FAIL | ${#var@X} is a parse error |
details | ||||
15 | FAIL | FAIL | FAIL | ${!A@a} and ${!A[@]@a} |
details | details | details |
21 passed, 11 OK, 0 not implemented, 0 BUG, 16 failed, 0 timeouts, 0 cases skipped 3 failed under osh
osh_.cc | 0 Lower Case with , and ,, [osh_.cc stdout] Expected 'aBC DEF\nabc def\nempty=\nempty=\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: mycpp/mylib.h:317: Str* Str::lower(): Assertion `0' failed. |
osh_.cc | 1 Upper Case with ^ and ^^ [osh_.cc stdout] Expected 'Abc def\nABC DEF\nempty=\nempty=\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: mycpp/mylib.h:313: Str* Str::upper(): Assertion `0' failed. |
osh | 2 Lower Case with constant string (VERY WEIRD) [osh stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got '' [osh status] Expected 0, got 1 stdout: stderr: echo ${x,A} ^ [ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument |
osh_.py | 2 Lower Case with constant string (VERY WEIRD) [osh_.py stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got '' [osh_.py status] Expected 0, got 1 stdout: stderr: echo ${x,A} ^ [ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument |
osh_.cc | 2 Lower Case with constant string (VERY WEIRD) [osh_.cc stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got '' [osh_.cc status] Expected 0, got 1 stdout: stderr: echo ${x,A} ^~~~ [ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument dumb_alloc: gNumNew = 1738 gNumDelete = 114 gMemPos = 60608 gNumMalloc = 65 gNumFree = 0 gMemPos2 = 10240 |
osh | 3 Lower Case glob [osh stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh status] Expected 0, got 1 stdout: stderr: FATAL: NotImplementedError('Id.VOp1_Comma',) |
osh_.py | 3 Lower Case glob [osh_.py stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh_.py status] Expected 0, got 1 stdout: stderr: osh fatal error: Id.VOp1_Comma |
osh_.cc | 3 Lower Case glob [osh_.cc stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: terminate called after throwing an instance of 'NotImplementedError*' |
osh | 5 ${array@Q} and ${array[@]@Q} stdout: x $'y\\nz' xstderr: echo ${array@Q} ^~ [ stdin ]:6: fatal: Array 'array' can't be referred to as a scalar (without @ or *) |
osh_.py | 5 ${array@Q} and ${array[@]@Q} stdout: x $'y\\nz' xstderr: echo ${array@Q} ^~ [ stdin ]:6: fatal: Array 'array' can't be referred to as a scalar (without @ or *) |
osh_.cc | 5 ${array@Q} and ${array[@]@Q} stdout: x $'y\\nz' xstderr: echo ${array@Q} ^~~~ [ stdin ]:6: fatal: Array 'array' can't be referred to as a scalar (without @ or *) dumb_alloc: gNumNew = 2465 gNumDelete = 241 gMemPos = 81584 gNumMalloc = 333 gNumFree = 0 gMemPos2 = 14592 |
osh | 10 undef and @P @Q @a stdout: status=0 '' status=0 status=0stderr: |
osh_.py | 10 undef and @P @Q @a stdout: status=0 '' status=0 status=0stderr: |
osh_.cc | 10 undef and @P @Q @a [osh_.cc stdout] Expected "\nstatus=0\n''\nstatus=0\n\nstatus=0\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed. |
osh | 11 argv array and @P @Q @a stdout: status=1 a $'b\\nc' status=0 a status=0stderr: echo ${@@P} ^~~~ [ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray |
osh_.py | 11 argv array and @P @Q @a stdout: status=1 a $'b\\nc' status=0 a status=0stderr: echo ${@@P} ^~~~ [ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray |
osh_.cc | 11 argv array and @P @Q @a [osh_.cc stdout] Expected "status=1\na $'b\\\\nc'\nstatus=0\na\nstatus=0\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed. |
osh | 12 assoc array and @P @Q @a stdout: status=1 status=1 A - A status=0stderr: declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P} ^~ [ -c flag ]:1: fatal: Array 'A' can't be referred to as a scalar (without @ or *) declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q} ^~ [ -c flag ]:1: fatal: Array 'A' can't be referred to as a scalar (without @ or *) |
osh_.py | 12 assoc array and @P @Q @a stdout: status=1 status=1 A - A status=0stderr: declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P} ^~ [ -c flag ]:1: fatal: Array 'A' can't be referred to as a scalar (without @ or *) declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q} ^~ [ -c flag ]:1: fatal: Array 'A' can't be referred to as a scalar (without @ or *) |
osh_.cc | 12 assoc array and @P @Q @a [osh_.cc stdout] Expected 'status=1\nstatus=1\nA - A\nstatus=0\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed. |
osh | 13 ${!var[@]@X} stdout: fail 'x y' astderr: declare -A A=(["x"]="y"); echo ${!A[@]@P} ^~~~ [ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray |
osh_.py | 13 ${!var[@]@X} stdout: fail 'x y' astderr: declare -A A=(["x"]="y"); echo ${!A[@]@P} ^~~~ [ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray |
osh_.cc | 13 ${!var[@]@X} [osh_.cc stdout] Expected "fail\n'x y'\na\n", got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed. |
osh_.cc | 14 ${#var@X} is a parse error [osh_.cc stdout] Expected 'fail\nfail\nfail\n', got '' [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.opt: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed. |
osh | 15 ${!A@a} and ${!A[@]@a} [osh stdout] Expected 'x=\nx=\n', got 'x=a\n' [osh status] Expected 0, got 1 stdout: x=astderr: echo x=${!A@a} ^~~~ [ stdin ]:3: fatal: Indirect expansion of assoc array |
osh_.py | 15 ${!A@a} and ${!A[@]@a} [osh_.py stdout] Expected 'x=\nx=\n', got 'x=a\n' [osh_.py status] Expected 0, got 1 stdout: x=astderr: echo x=${!A@a} ^~~~ [ stdin ]:3: fatal: Indirect expansion of assoc array |
osh_.cc | 15 ${!A@a} and ${!A[@]@a} [osh_.cc stdout] Expected 'x=\nx=\n', got 'x=a\n' [osh_.cc status] Expected 0, got 1 stdout: x=astderr: echo x=${!A@a} ^~~~ [ stdin ]:3: fatal: Indirect expansion of assoc array dumb_alloc: gNumNew = 1975 gNumDelete = 169 gMemPos = 68016 gNumMalloc = 113 gNumFree = 0 gMemPos2 = 11008 |