spec test index / oilshell.org
status | osh | osh_.py | osh_.cc | |
pass | 8 | 7 | 5 | |
ok | 5 | 1 | 1 | |
FAIL | 3 | 8 | 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 | FAIL | FAIL | ${!prefix@} ${!prefix*} yields sorted array of var names |
details | details | |||
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 | FAIL | FAIL | undef and @P @Q @a |
details | details | details | ||
11 | ok | FAIL | FAIL | argv array and @P @Q @a |
details | details | details | ||
12 | ok | FAIL | FAIL | assoc array and @P @Q @a |
details | details | details | ||
13 | ok | FAIL | FAIL | ${!var[@]@X} |
details | details | details | ||
14 | pass | pass | pass | ${#var@X} is a parse error |
15 | FAIL | FAIL | FAIL | ${!A@a} and ${!A[@]@a} |
details | details | details |
20 passed, 7 OK, 0 not implemented, 0 BUG, 21 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.dbg: mycpp/mylib.h:353: 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.dbg: mycpp/mylib.h:349: 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 |
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 *) |
osh_.py | 6 ${!prefix@} ${!prefix*} yields sorted array of var names [osh_.py stdout] Expected "['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py ${!Z*} ^~~~~~~ [ stdin ]:6: 'argv.py' not found argv.py ${!Z@} ^~~~~~~ [ stdin ]:7: 'argv.py' not found argv.py "${!Z*}" ^~~~~~~ [ stdin ]:8: 'argv.py' not found argv.py "${!Z@}" ^~~~~~~ [ stdin ]:9: 'argv.py' not found for i in 1 2; do argv.py ${!Z*} ; done ^~~~~~~ [ stdin ]:10: 'argv.py' not found for i in 1 2; do argv.py ${!Z*} ; done ^~~~~~~ [ stdin ]:10: 'argv.py' not found for i in 1 2; do argv.py ${!Z@} ; done ^~~~~~~ [ stdin ]:11: 'argv.py' not found for i in 1 2; do argv.py ${!Z@} ; done ^~~~~~~ [ stdin ]:11: 'argv.py' not found for i in 1 2; do argv.py "${!Z*}"; done ^~~~~~~ [ stdin ]:12: 'argv.py' not found for i in 1 2; do argv.py "${!Z*}"; done ^~~~~~~ [ stdin ]:12: 'argv.py' not found for i in 1 2; do argv.py "${!Z@}"; done ^~~~~~~ [ stdin ]:13: 'argv.py' not found for i in 1 2; do argv.py "${!Z@}"; done ^~~~~~~ [ stdin ]:13: 'argv.py' not found |
osh_.cc | 6 ${!prefix@} ${!prefix*} yields sorted array of var names [osh_.cc stdout] Expected "['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z ZIP ZOO ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n['Z', 'ZIP', 'ZOO', 'ZOOM']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py ${!Z*} ^~~~~~~ [ stdin ]:6: 'argv.py' not found argv.py ${!Z@} ^~~~~~~ [ stdin ]:7: 'argv.py' not found argv.py "${!Z*}" ^~~~~~~ [ stdin ]:8: 'argv.py' not found argv.py "${!Z@}" ^~~~~~~ [ stdin ]:9: 'argv.py' not found for i in 1 2; do argv.py ${!Z*} ; done ^~~~~~~ [ stdin ]:10: 'argv.py' not found for i in 1 2; do argv.py ${!Z*} ; done ^~~~~~~ [ stdin ]:10: 'argv.py' not found for i in 1 2; do argv.py ${!Z@} ; done ^~~~~~~ [ stdin ]:11: 'argv.py' not found for i in 1 2; do argv.py ${!Z@} ; done ^~~~~~~ [ stdin ]:11: 'argv.py' not found for i in 1 2; do argv.py "${!Z*}"; done ^~~~~~~ [ stdin ]:12: 'argv.py' not found for i in 1 2; do argv.py "${!Z*}"; done ^~~~~~~ [ stdin ]:12: 'argv.py' not found for i in 1 2; do argv.py "${!Z@}"; done ^~~~~~~ [ stdin ]:13: 'argv.py' not found for i in 1 2; do argv.py "${!Z@}"; done ^~~~~~~ [ stdin ]:13: 'argv.py' not found |
osh | 10 undef and @P @Q @a stdout: status=0 '' status=0 status=0stderr: |
osh_.py | 10 undef and @P @Q @a [osh_.py stdout] Expected "\nstatus=0\n''\nstatus=0\n\nstatus=0\n", got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'echo ${undef@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'echo ${undef@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'echo ${undef@a}' ^~ [ stdin ]:5: '-c' not found |
osh_.cc | 10 undef and @P @Q @a [osh_.cc stdout] Expected "\nstatus=0\n''\nstatus=0\n\nstatus=0\n", got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'echo ${undef@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'echo ${undef@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'echo ${undef@a}' ^~ [ stdin ]:5: '-c' not found |
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 [osh_.py stdout] Expected "status=1\na $'b\\\\nc'\nstatus=0\na\nstatus=0\n", got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'echo ${@@P}' dummy a b c ^~ [ stdin ]:1: '-c' not found $SH -c 'echo ${@@Q}' dummy a 'b\nc' ^~ [ stdin ]:3: '-c' not found $SH -c 'echo ${@@a}' dummy a b c ^~ [ stdin ]:5: '-c' not found |
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 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'echo ${@@P}' dummy a b c ^~ [ stdin ]:1: '-c' not found $SH -c 'echo ${@@Q}' dummy a 'b\nc' ^~ [ stdin ]:3: '-c' not found $SH -c 'echo ${@@a}' dummy a b c ^~ [ stdin ]:5: '-c' not found |
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 [osh_.py stdout] Expected 'status=1\nstatus=1\nA - A\nstatus=0\n', got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'declare -A A=(["x"]=y); echo ${A@a} - ${A[@]@a}' ^~ [ stdin ]:5: '-c' not found |
osh_.cc | 12 assoc array and @P @Q @a [osh_.cc stdout] Expected 'status=1\nstatus=1\nA - A\nstatus=0\n', got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: $SH -c 'declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'declare -A A=(["x"]=y); echo ${A@a} - ${A[@]@a}' ^~ [ stdin ]:5: '-c' not found |
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} [osh_.py stdout] Expected "fail\n'x y'\na\n", got 'fail\nfail\nfail\n' stdout: fail fail failstderr: $SH -c 'declare -A A=(["x"]="y"); echo ${!A[@]@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'declare -A A=(["x y"]="y"); echo ${!A[@]@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'declare -A A=(["x"]=y); echo ${!A[@]@a}' ^~ [ stdin ]:5: '-c' not found |
osh_.cc | 13 ${!var[@]@X} [osh_.cc stdout] Expected "fail\n'x y'\na\n", got 'fail\nfail\nfail\n' stdout: fail fail failstderr: $SH -c 'declare -A A=(["x"]="y"); echo ${!A[@]@P}' ^~ [ stdin ]:1: '-c' not found $SH -c 'declare -A A=(["x y"]="y"); echo ${!A[@]@Q}' ^~ [ stdin ]:3: '-c' not found $SH -c 'declare -A A=(["x"]=y); echo ${!A[@]@a}' ^~ [ stdin ]:5: '-c' not found |
osh | 15 ${!A@a} and ${!A[@]@a} [osh stdout] Expected 'x=\nx=\n', got 'x=a\nx=a\n' stdout: x=a x=astderr: |
osh_.py | 15 ${!A@a} and ${!A[@]@a} [osh_.py stdout] Expected 'x=\nx=\n', got 'x=a\nx=a\n' stdout: x=a x=astderr: |
osh_.cc | 15 ${!A@a} and ${!A[@]@a} [osh_.cc stdout] Expected 'x=\nx=\n', got 'x=a\nx=a\n' stdout: x=a x=astderr: |