Results for ysh-for.test.sh

statusyshysh_ALT
pass 1919
FAIL 11
total2020
caseyshysh_ALTdescription
0pass pass For loop over expression: List
1FAIL FAIL For loop over expression: Dict, not BashAssoc
detailsdetails
2pass pass For loop over range
3pass pass Shell for loop with index (equivalent of enumerate())
4pass pass 3 indices with (mylist) is a runtime error
5pass pass Shell for loop can't have 3 indices
6pass pass Any for loop can't have 4 indices
7pass pass Expression for loop with index: List
8pass pass Expression for loop with index: Dict (TODO: define dict iter order)
9pass pass Dict: index key value loop (TODO: define dict iter order)
10pass pass Equivalent of zip()
11pass pass parse_bare_word eliminates confusion
12pass pass Object that's not iterable
13pass pass YSH for with brace substitution and glob
14pass pass for x in (io.stdin) {
15pass pass I/O error in for x in (stdin) {
16pass pass Append to List in loop extends the loop (matches JS)
17pass pass Remove from List in loop shortens it (matches JS)
18pass pass Adding to Dict in loop does NOT extend the loop (matches JS)
19pass pass Removing from Dict in loop does NOT change the loop (does NOT match JS)
38 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

ysh1 For loop over expression: Dict, not BashAssoc

[ysh status] Expected 3, got 1
[ysh stderr] Found 'Traceback (most recent'

stdout:
key name
key age
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 1214, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2174, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1973, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1700, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 964, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 607, in _RunSimpleCommand
    return self._RunAssignBuiltin(cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 393, in _RunAssignBuiltin
    status = builtin_func.Run(cmd_val)
  File "/home/uke/oil/builtin/assign_osh.py", line 530, in Run
    self.arith_ev, arg.a, arg.A)
  File "/home/uke/oil/builtin/assign_osh.py", line 245, in _AssignVarForBuiltin
    with tagswitch(old_val) as case:
NameError: global name 'tagswitch' is not defined
ysh_ALT1 For loop over expression: Dict, not BashAssoc

[ysh_ALT status] Expected 3, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
key name
key age
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 1214, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 386, in Batch
    return status
  File "/home/uke/oil/osh/cmd_eval.py", line 2177, in ExecuteAndCatch
    raise  # 'eval break' and 'source return.sh', etc.
  File "/home/uke/oil/osh/cmd_eval.py", line 1973, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1914, in _Dispatch
    status = self._DoTimeBlock(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 964, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 607, in _RunSimpleCommand
    return self._RunAssignBuiltin(cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 393, in _RunAssignBuiltin
    status = builtin_func.Run(cmd_val)
  File "/home/uke/oil/builtin/assign_osh.py", line 530, in Run
    self.arith_ev, arg.a, arg.A)
  File "/home/uke/oil/builtin/assign_osh.py", line 281, in _AssignVarForBuiltin
    val = cmd_eval.PlusEquals(old_val, rval)
NameError: global name 'tagswitch' is not defined
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.27.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47