Results for ble-idioms.test.sh

statusbashzshmkshashosh
pass 1499512
N-I 03570
BUG 13130
FAIL 00003
total1515151515
casebashzshmkshashoshdescription
0pass pass pass pass pass recursive arith: one level
1pass pass pass pass pass recursive arith: two levels
2pass pass BUG BUG pass recursive arith: short circuit &&, ||
detailsdetails
3pass pass pass BUG pass recursive arith: short circuit ?:
details
4pass BUG pass BUG pass recursive arith: side effects
detailsdetails
5pass pass N-I N-I FAIL recursive arith: recursion
detailsdetailsdetails
6pass pass pass N-I pass recursive arith: array elements
details
7pass pass pass pass pass dynamic arith varname: assign
8pass pass pass pass pass dynamic arith varname: read
9pass pass pass pass FAIL dynamic arith varname: copy/add
details
10pass N-I N-I N-I pass is-array with ${var@a}
detailsdetailsdetails
11pass BUG pass N-I pass Sparse array with big index
detailsdetails
12pass BUG N-I N-I FAIL shift unshift reverse
detailsdetailsdetailsdetails
13pass N-I N-I N-I pass shopt -u expand_aliases and eval
detailsdetailsdetails
14BUG N-I N-I N-I pass Tilde expansions in RHS of designated array initialization
detailsdetailsdetailsdetails
49 passed, 0 OK, 15 not implemented, 8 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

mksh2 recursive arith: short circuit &&, ||

stdout:
1:123
1:123
0:321
1:321
stderr:
ash2 recursive arith: short circuit &&, ||

stdout:
1:123
1:123
0:321
1:321
stderr:
ash3 recursive arith: short circuit ?:

stdout:
123:321
321:321
stderr:
zsh4 recursive arith: side effects

stdout:
0:123
stderr:
ash4 recursive arith: side effects

stdout:
0:123
stderr:
mksh5 recursive arith: recursion

stdout:
stderr: 
mksh: <stdin>[2]: i<=100&&(s+=i,i++,loop): expression recurses on parameter 'loop'
ash5 recursive arith: recursion

stdout:
stderr: 
ash: expression recursion loop detected
osh5 recursive arith: recursion

[osh stdout] Expected '5050\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 1213, 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 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 859, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2516, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1985, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1905, in _EvalWordPart
    num = self.arith_ev.EvalToBigInt(part.anode)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 817, in Eval
    self.EvalToBigInt(node.left)  # throw away result
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 643, in Eval
    rhs_big = self.EvalToBigInt(node.right)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 563, in EvalToBigInt
    i = self._ValToIntOrError(val, node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 498, in _ValToIntOrError
    return self._StringToBigInt(val.s, loc.Arith(blame))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 476, in _StringToBigInt
    integer = self.EvalToBigInt(node2)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 729, in Eval
    rhs_big = self.EvalToBigInt(node.right)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 817, in Eval
    self.EvalToBigInt(node.left)  # throw away result
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 817, in Eval
    self.EvalToBigInt(node.left)  # throw away result
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 648, in Eval
    old_big, lval = self._EvalLhsAndLookupArith(node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 520, in _EvalLhsAndLookupArith
    location.TokenForArith(node))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue
    cell = mem.GetCellDeref(var_name)
  File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref
    cell, _ = self._ResolveNameOrRef(name, which_scopes)
ValueError: too many values to unpack
ash6 recursive arith: array elements

stdout:
stderr: 
ash: text[1]=d=123: not found
ash: text[2]=text[1]: not found
ash: text[3]=text[2]: not found
ash: arithmetic syntax error
osh9 dynamic arith varname: copy/add

[osh stdout] Expected 'c_x=3 c_y=4\nc_x=7 c_y=24\n', got 'c_x=3 c_y=4\n'
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
c_x=3 c_y=4
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 1213, 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 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in RunSimpleCommand
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2323, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1754, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 859, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2516, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1985, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1905, in _EvalWordPart
    num = self.arith_ev.EvalToBigInt(part.anode)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 648, in Eval
    old_big, lval = self._EvalLhsAndLookupArith(node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 520, in _EvalLhsAndLookupArith
    location.TokenForArith(node))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue
    cell = mem.GetCellDeref(var_name)
  File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref
    cell, _ = self._ResolveNameOrRef(name, which_scopes)
ValueError: too many values to unpack
zsh10 is-array with ${var@a}

stdout:
stderr: 
ble/is-array: bad substitution
mksh10 is-array with ${var@a}

stdout:
stderr: 
ash10 is-array with ${var@a}

stdout:
stderr: 
zsh11 Sparse array with big index

stdout:
len=1048576
stderr:
ash11 Sparse array with big index

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh12 shift unshift reverse

stdout:
1 2 3 4 5 6
2 3 4 5 6
4 5 6
---
99 4 5 6
---
5 4 99
stderr:
(eval):4: a: assignment to invalid subscript range
mksh12 shift unshift reverse

stdout:
stderr: 
ash12 shift unshift reverse

stdout:
stderr: 
osh12 shift unshift reverse

[osh stdout] Expected '1 2 3 4 5 6\n2 3 4 5 6\n4 5 6\n---\n99 4 5 6\n---\n6 5 4 99\n' Got '1 2 3 4 5 6\n2 3 4 5 6\n4 5 6\n---\n99 4 5 6\n---\n'
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
1 2 3 4 5 6
2 3 4 5 6
4 5 6
---
99 4 5 6
---
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 1213, 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 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in RunSimpleCommand
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2323, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1754, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 452, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/executor.py", line 313, in RunBuiltin
    return self.RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/executor.py", line 323, in RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/meta_oils.py", line 635, in Run
    return self.shell_ex.RunBuiltin(to_run, cmd_val2)
  File "/home/uke/oil/core/executor.py", line 313, in RunBuiltin
    return self.RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/executor.py", line 323, in RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/meta_oils.py", line 101, in Run
    cmd_flags=cmd_eval.RaiseControlFlow)
  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 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1795, in _Dispatch
    status = self._DoForEach(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1333, in _DoForEach
    status = self._Execute(node.body)  # last one wins
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1750, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1653, in _Dispatch
    status = self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1645, in _Dispatch
    status = self._DoShAssignment(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 993, in _DoShAssignment
    lval = self.arith_ev.EvalShellLhs(pair.lhs, which_scopes)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 954, in EvalShellLhs
    index = mops.BigTruncate(self.EvalToBigInt(node.index))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 611, in Eval
    old_big, lval = self._EvalLhsAndLookupArith(node.child)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 520, in _EvalLhsAndLookupArith
    location.TokenForArith(node))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 130, in OldValue
    cell = mem.GetCellDeref(var_name)
  File "/home/uke/oil/core/state.py", line 2318, in GetCellDeref
    cell, _ = self._ResolveNameOrRef(name, which_scopes)
ValueError: too many values to unpack
zsh13 shopt -u expand_aliases and eval

stdout:
stderr: 
mksh13 shopt -u expand_aliases and eval

stdout:
stderr: 
ash13 shopt -u expand_aliases and eval

stdout:
stderr: 
bash14 Tilde expansions in RHS of designated array initialization

stdout:
~
~:~:~
stderr:
zsh14 Tilde expansions in RHS of designated array initialization

stdout:
stderr: 
mksh14 Tilde expansions in RHS of designated array initialization

stdout:
stderr: 
ash14 Tilde expansions in RHS of designated array initialization

stdout:
stderr: