status | bash | osh | |
pass | 4 | 3 | |
N-I | 3 | 0 | |
BUG | 1 | 0 | |
FAIL | 0 | 5 | |
total | 8 | 8 | |
case | bash | osh | description |
0 | pass | FAIL | [k1]=v1 (BashArray) |
details | |||
1 | pass | FAIL | [k1]=v1 (BashAssoc) |
details | |||
2 | pass | FAIL | [k1]=v1 looking like brace expansions (BashArray) |
details | |||
3 | BUG | FAIL | [k1]=v1 looking like brace expansions (BashAssoc) |
details | details | ||
4 | pass | FAIL | BashArray cannot be changed to BashAssoc and vice versa |
details | |||
5 | N-I | pass | s+=() with strict_array |
details | |||
6 | N-I | pass | declare -A s+=() with strict_array |
details | |||
7 | N-I | pass | assoc=(key value ...) is not allowed in the strict_array mode |
details |
7 passed, 0 OK, 3 not implemented, 1 BUG, 5 failed, 0 timeouts, 0 cases skipped 5 failed under osh
osh | 0 [k1]=v1 (BashArray) [osh stdout] Expected 'v2\nv2\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1661, in _EvalBracedVarSub val = self._EvalBracketOp(val, part, quoted, vsub_state, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1524, in _EvalBracketOp val = self._ArrayIndex(val, part, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1390, in _ArrayIndex s, error_code = bash_impl.BashArray_GetElement( NameError: global name 'bash_impl' is not defined |
osh | 1 [k1]=v1 (BashAssoc) [osh stdout] Expected 'v1\nv2\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1661, in _EvalBracedVarSub val = self._EvalBracketOp(val, part, quoted, vsub_state, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1524, in _EvalBracketOp val = self._ArrayIndex(val, part, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1414, in _ArrayIndex s = bash_impl.BashAssoc_GetElement(assoc_val, key) NameError: global name 'bash_impl' is not defined |
osh | 2 [k1]=v1 looking like brace expansions (BashArray) [osh stdout] Expected '-{a,b}-\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1661, in _EvalBracedVarSub val = self._EvalBracketOp(val, part, quoted, vsub_state, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1524, in _EvalBracketOp val = self._ArrayIndex(val, part, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1414, in _ArrayIndex s = bash_impl.BashAssoc_GetElement(assoc_val, key) NameError: global name 'bash_impl' is not defined |
bash | 3 [k1]=v1 looking like brace expansions (BashAssoc) stdout: [k2]=-a-stderr: |
osh | 3 [k1]=v1 looking like brace expansions (BashAssoc) [osh stdout] Expected '-{a,b}-\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1661, in _EvalBracedVarSub val = self._EvalBracketOp(val, part, quoted, vsub_state, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1524, in _EvalBracketOp val = self._ArrayIndex(val, part, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1390, in _ArrayIndex s, error_code = bash_impl.BashArray_GetElement( NameError: global name 'bash_impl' is not defined |
osh | 4 BashArray cannot be changed to BashAssoc and vice versa [osh stdout] Expected "status=1\n['1', '2', '3', '4']\nstatus=1\n['x', 'y', 'z']\n" Got 'status=1\n' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: status=1stderr: declare -A a=([a]=x [b]=y [c]=z) ^~ [ eval arg at line 2 of [ stdin ] ]:1 eval 'declare -A a=([a]=x [b]=y [c]=z)' ^~~~ [ stdin ]:2: fatal: Can't convert type BashArray into BashAssoc Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart self._EvalDoubleQuoted(part.parts, part_vals) File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted self._EvalWordPart(p, part_vals, QUOTED) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1750, in _EvalBracedVarSub part_val = _ValueToPartValue(val, quoted or quoted2, part) File "/home/uke/oil/osh/word_eval.py", line 235, in _ValueToPartValue return part_value.Array(bash_impl.BashArray_GetValues(val), quoted) NameError: global name 'bash_impl' is not defined |
bash | 5 s+=() with strict_array stdout: status=0 declare -a s1=([0]="1" [1]="2" [2]="3" [3]="4") status=0 declare -a s2=([0]="world" [1]="1" [2]="2" [3]="3" [4]="4")stderr: |
bash | 6 declare -A s+=() with strict_array stdout: status=0 declare -A s1=([b]="y" [a]="x" ) status=0 declare -A s2=([0]="world" [b]="y" [a]="x" )stderr: |
bash | 7 assoc=(key value ...) is not allowed in the strict_array mode stdout: declare -A a=([3]="4" [1]="2" )stderr: |