status | ysh | ysh_ALT | |
pass | 17 | 17 | |
FAIL | 1 | 1 | |
total | 18 | 18 | |
case | ysh | ysh_ALT | description |
0 | pass | pass | shell array :| a 'b c' | |
1 | pass | pass | empty array and simple_word_eval (regression test) |
2 | pass | pass | Empty array and assignment builtin (regression) |
3 | pass | pass | Shell arrays support tilde detection, static globbing, brace detection |
4 | pass | pass | Basic List, a[42] a['42'] allowed |
5 | pass | pass | Mutate List entries, a[42] a['42'] allowed |
6 | FAIL | FAIL | string array with command sub, varsub, etc. |
details | details | ||
7 | pass | pass | Can print type of List with pp |
8 | pass | pass | splice and stringify array |
9 | pass | pass | List->extend() |
10 | pass | pass | List append()/extend() should return null |
11 | pass | pass | List pop() |
12 | pass | pass | List remove() removes elements |
13 | pass | pass | List remove() does nothing if element does not exist |
14 | pass | pass | List insert() |
15 | pass | pass | List insert() overflow |
16 | pass | pass | List insert() negative |
17 | pass | pass | List insert() negative overflow |
34 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped 1 failed under osh
ysh | 6 string array with command sub, varsub, etc. [ysh stdout] Expected 'len=4\n1\nhi\nsq\ndq 1\n', got '' [ysh status] Expected 0, got 1 [ysh 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 137, in AppBundleMain return shell.Main('ysh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, 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 2285, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1878, in _Dispatch status = self._DoVarDecl(node) File "/home/uke/oil/osh/cmd_eval.py", line 894, in _DoVarDecl right_val = self.expr_ev.EvalExpr(node.rhs, loc.Missing) File "/home/uke/oil/ysh/expr_eval.py", line 397, in EvalExpr val = self._EvalExpr(node) File "/home/uke/oil/ysh/expr_eval.py", line 1222, in _EvalExpr strs = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2479, in EvalWordSequence2 allow_assign) File "/home/uke/oil/osh/word_eval.py", line 2440, in SimpleEvalWordSequence2 self._EvalWordToParts(w, part_vals, 0) # not quoted File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method |
ysh_ALT | 6 string array with command sub, varsub, etc. [ysh_ALT stdout] Expected 'len=4\n1\nhi\nsq\ndq 1\n', got '' [ysh_ALT status] Expected 0, got 1 [ysh_ALT stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook sys.exit(oils_for_unix.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 137, in AppBundleMain return shell.Main('ysh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1266, 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 2288, in ExecuteAndCatch raise # 'eval break' and 'source return.sh', etc. File "/home/uke/oil/osh/cmd_eval.py", line 2137, in _Execute errexit_loc = process_sub_st.locs[i] File "/home/uke/oil/osh/cmd_eval.py", line 1878, in _Dispatch status = self._DoVarDecl(node) File "/home/uke/oil/osh/cmd_eval.py", line 894, in _DoVarDecl right_val = self.expr_ev.EvalExpr(node.rhs, loc.Missing) File "/home/uke/oil/ysh/expr_eval.py", line 397, in EvalExpr val = self._EvalExpr(node) File "/home/uke/oil/ysh/expr_eval.py", line 1222, in _EvalExpr strs = self.word_ev.EvalWordSequence(words) File "/home/uke/oil/osh/word_eval.py", line 2592, in EvalWordSequence cmd_val = self.EvalWordSequence2(words, False) File "/home/uke/oil/osh/word_eval.py", line 2479, in EvalWordSequence2 allow_assign) File "/home/uke/oil/osh/word_eval.py", line 2440, in SimpleEvalWordSequence2 self._EvalWordToParts(w, part_vals, 0) # not quoted File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout fds = pyos.WaitForInputs([r, r2]) File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs r, w, exc = select.select(fd, [], [fd]) TypeError: argument must be an int, or have a fileno() method. FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.28.0/_bin/ysh' (1) Stripping the oil.ovm binary may cause this error. See https://github.com/oilshell/oil/issues/47 |