Results for ysh-assign.test.sh

statusysh
pass 19
FAIL 3
total22
caseyshdescription
0pass proc static check: const can't be mutated
1pass top-level dynamic check: const can't be be mutated
2pass top level: var can be redefined by var/const
3pass setvar mutates local
4pass top level: setvar creates global
5pass top level: setvar mutates var
6pass proc static check: variable changed by setvar must be declared
7pass setglobal
8pass setglobal of undeclared var is allowed
9pass var a, b does implicit null init
10pass var x, y = f()
11pass const x, y = f()
12pass setvar x, y = 1, 2
13pass setvar to swap List and Dict elements
14pass setvar d.key = 42
15pass setvar mylist[1] = 42
16pass setvar mylist[99] out of range
17pass mixing assignment builtins and YSH assignment
18FAIL circular dict - TODO 2023-06 REGRESS
details
19FAIL circular list - TODO 2023-06 REGRESS
details
20FAIL exit code of var, const, setvar with command sub
details
21pass setvar obj[INVALID TYPE] =
19 passed, 0 OK, 0 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

ysh18 circular dict - TODO 2023-06 REGRESS

[ysh stdout] Expected "(OrderedDict) <'name': 'foo'>\n(OrderedDict) <'name': 123>\n(OrderedDict) <'name': 'mystr'>\n(OrderedDict) <'name': ...>\n" Got '(Dict) {"name":"foo"}\n(Dict) {"name":123}\n(Dict) {"name":"mystr"}\n(Dict) {"name":{...}}\n'

stdout:
(Dict)   {"name":"foo"}
(Dict)   {"name":123}
(Dict)   {"name":"mystr"}
(Dict)   {"name":{...}}
stderr:
ysh19 circular list - TODO 2023-06 REGRESS

[ysh stdout] Expected '(List) [1, 2, 3]\n(List) [[...], 2, 3]\n' Got '(List) [1, 2, 3]\n'

stdout:
(List)  [1, 2, 3]
stderr:
ysh20 exit code of var, const, setvar with command sub

[ysh stderr] Found 'Traceback (most recent'

stdout:
outside1=1
outside2=1
outside3=1
outside4=1
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 1768, in _Dispatch
    status = self._DoVarDecl(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 744, 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 1201, in _EvalExpr
    stdout_str = self.shell_ex.RunCommandSub(node)
  File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout
    fds, w, exc = select.select([r,r2], [], [r,r2], -1)
NameError: global name 'select' is not defined
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 1775, in _Dispatch
    self._DoMutation(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 792, in _DoMutation
    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 1201, in _EvalExpr
    stdout_str = self.shell_ex.RunCommandSub(node)
  File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout
    fds, w, exc = select.select([r,r2], [], [r,r2], -1)
NameError: global name 'select' is not defined
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 1785, in _Dispatch
    status = self._DoExpr(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1090, in _DoExpr
    val = self.expr_ev.EvalExpr(node.e, 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 1370, in _EvalExpr
    return self._EvalFuncCall(node)
  File "/home/uke/oil/ysh/expr_eval.py", line 888, in _EvalFuncCall
    pos_args, named_args = func_proc._EvalArgList(self, node.args)
  File "/home/uke/oil/ysh/func_proc.py", line 201, in _EvalArgList
    _EvalPosArgs(expr_ev, args.pos_args, pos_args)
  File "/home/uke/oil/ysh/func_proc.py", line 154, in _EvalPosArgs
    pos_args.append(expr_ev._EvalExpr(e))
  File "/home/uke/oil/ysh/expr_eval.py", line 1201, in _EvalExpr
    stdout_str = self.shell_ex.RunCommandSub(node)
  File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout
    fds, w, exc = select.select([r,r2], [], [r,r2], -1)
NameError: global name 'select' is not defined
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 1775, in _Dispatch
    self._DoMutation(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 799, in _DoMutation
    lvals = [self.expr_ev.EvalLhsExpr(node.lhs[0], which_scopes)]
  File "/home/uke/oil/ysh/expr_eval.py", line 404, in EvalLhsExpr
    lval = self._EvalLhsExpr(lhs, which_scopes)
  File "/home/uke/oil/ysh/expr_eval.py", line 362, in _EvalLhsExpr
    index = self._EvalExpr(lhs.index)
  File "/home/uke/oil/ysh/expr_eval.py", line 1201, in _EvalExpr
    stdout_str = self.shell_ex.RunCommandSub(node)
  File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout
    fds, w, exc = select.select([r,r2], [], [r,r2], -1)
NameError: global name 'select' is not defined