spec test index / oilshell.org
status | osh | osh-cpp | |
pass | 8 | 8 | |
ok | 5 | 5 | |
FAIL | 5 | 5 | |
total | 18 | 18 | |
case | osh | osh-cpp | description |
0 | pass | pass | Lower Case with , and ,, |
1 | pass | pass | Upper Case with ^ and ^^ |
2 | FAIL | FAIL | Case Folding of Unicode Characters |
details | details | ||
3 | FAIL | FAIL | Lower Case with constant string (VERY WEIRD) |
details | details | ||
4 | FAIL | FAIL | Lower Case glob |
details | details | ||
5 | FAIL | FAIL | ${x@u} U l L upper / lower case (bash 5.1 feature) |
details | details | ||
6 | pass | pass | ${x@Q} |
7 | ok | ok | ${array@Q} and ${array[@]@Q} |
details | details | ||
8 | pass | pass | ${!prefix@} ${!prefix*} yields sorted array of var names |
9 | pass | pass | ${!prefix@} matches var name (regression) |
10 | pass | pass | ${var@a} for attributes |
11 | pass | pass | ${var@a} error conditions |
12 | ok | ok | undef and @P @Q @a |
details | details | ||
13 | ok | ok | argv array and @P @Q @a |
details | details | ||
14 | ok | ok | assoc array and @P @Q @a |
details | details | ||
15 | ok | ok | ${!var[@]@X} |
details | details | ||
16 | pass | pass | ${#var@X} is a parse error |
17 | FAIL | FAIL | ${!A@a} and ${!A[@]@a} |
details | details |
16 passed, 10 OK, 0 not implemented, 0 BUG, 10 failed, 0 timeouts, 0 cases skipped 5 failed under osh
osh | 2 Case Folding of Unicode Characters [osh stdout] Expected 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\xa0\xc3\x88\nL \xc3\xa0\xc3\xa8\nu \xc3\x81\xc3\xa9\nU \xc3\x81\xc3\x89\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' Got 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\x80\xc3\x88\nL \xc3\x80\xc3\x88\nu \xc3\xa1\xc3\xa9\nU \xc3\xa1\xc3\xa9\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' stdout: u ÀÈ U ÀÈ l ÀÈ L ÀÈ u áé U áé l áé L áéstderr: |
osh-cpp | 2 Case Folding of Unicode Characters [osh-cpp stdout] Expected 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\xa0\xc3\x88\nL \xc3\xa0\xc3\xa8\nu \xc3\x81\xc3\xa9\nU \xc3\x81\xc3\x89\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' Got 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\x80\xc3\x88\nL \xc3\x80\xc3\x88\nu \xc3\xa1\xc3\xa9\nU \xc3\xa1\xc3\xa9\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' stdout: u ÀÈ U ÀÈ l ÀÈ L ÀÈ u áé U áé l áé L áéstderr: |
osh | 3 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-cpp | 3 Lower Case with constant string (VERY WEIRD) [osh-cpp stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got '' [osh-cpp status] Expected 0, got 1 stdout: stderr: echo ${x,A} ^ [ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument |
osh | 4 Lower Case glob [osh stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 198, in <module> sys.exit(main(sys.argv)) File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 170, in main return AppBundleMain(argv) File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 140, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/andy/git/oilshell/oil/core/shell.py", line 1111, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 364, in Batch is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags) File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1995, in ExecuteAndCatch status = self._Execute(node) File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1812, in _Execute status = self._Dispatch(node, cmd_st) File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1535, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 870, in _DoSimple cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 2219, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1734, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1642, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1403, in _EvalBracedVarSub val = self._ApplyUnarySuffixOp(val, op) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 840, in _ApplyUnarySuffixOp has_extglob) File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 441, in DoUnarySuffixOp raise NotImplementedError(ui.PrettyId(id_)) NotImplementedError: Id.VOp1_Comma |
osh-cpp | 4 Lower Case glob [osh-cpp stdout] Expected 'ABC DEF\nABC deF\n', got '' [osh-cpp status] Expected 0, got -6 stdout: stderr: osh: _gen/bin/oils_for_unix.mycpp.cc:40679: BigStr* string_ops::DoUnarySuffixOp(BigStr*, syntax_asdl::Token*, BigStr*, bool): Assertion `false' failed. timeout: the monitored command dumped core |
osh | 5 ${x@u} U l L upper / lower case (bash 5.1 feature) [osh status] Expected 0, got 2 stdout: stderr: echo "${x@u}" ^ [ stdin ]:2: Unexpected token in ${} (VOp3) |
osh-cpp | 5 ${x@u} U l L upper / lower case (bash 5.1 feature) [osh-cpp status] Expected 0, got 2 stdout: stderr: echo "${x@u}" ^ [ stdin ]:2: Unexpected token in ${} (VOp3) |
osh | 7 ${array@Q} and ${array[@]@Q} stdout: x $'y\\nz' x xstderr: |
osh-cpp | 7 ${array@Q} and ${array[@]@Q} stdout: x $'y\\nz' x xstderr: |
osh | 12 undef and @P @Q @a stdout: status=0 '' status=0 status=0stderr: |
osh-cpp | 12 undef and @P @Q @a stdout: status=0 '' status=0 status=0stderr: |
osh | 13 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 BashArray |
osh-cpp | 13 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 BashArray |
osh | 14 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: Can't use @P on BashAssoc declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q} ^~ [ -c flag ]:1: fatal: Can't use @Q on BashAssoc |
osh-cpp | 14 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: Can't use @P on BashAssoc declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q} ^~ [ -c flag ]:1: fatal: Can't use @Q on BashAssoc |
osh | 15 ${!var[@]@X} stdout: fail 'x y' astderr: declare -A A=(["x"]="y"); echo ${!A[@]@P} ^~ [ -c flag ]:1: fatal: Can't use @P on BashArray |
osh-cpp | 15 ${!var[@]@X} stdout: fail 'x y' astderr: declare -A A=(["x"]="y"); echo ${!A[@]@P} ^~ [ -c flag ]:1: fatal: Can't use @P on BashArray |
osh | 17 ${!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-cpp | 17 ${!A@a} and ${!A[@]@a} [osh-cpp stdout] Expected 'x=\nx=\n', got 'x=a\n' [osh-cpp status] Expected 0, got 1 stdout: x=astderr: echo x=${!A@a} ^~~~ [ stdin ]:3: fatal: Indirect expansion of assoc array |