Results for ysh-expr.test.sh

statusoshosh_ALT
pass 2826
FAIL 35
total3131
caseoshosh_ALTdescription
0pass pass command sub $(echo hi)
1pass pass Set $HOME using 'var' (i.e. Oil string var in word evaluator)
2pass pass Use shell var in Oil expression
3FAIL FAIL Length doesn't apply to BashArray
detailsdetails
4pass pass $[len(x)] inside strings
5pass FAIL Func with multiple args in multiple contexts
details
6pass FAIL Trailing Comma in Param list
details
7pass pass nested expr contexts
8pass pass YSH var used with shell arithmetic
9pass pass Parse { var x = 42 }
10pass pass double quoted
11FAIL FAIL double quoted respects strict_array
detailsdetails
12pass pass simple var sub $name $0 $1 $? etc.
13pass pass braced var sub ${x:-default}
14FAIL FAIL braced var sub respects strict_array
detailsdetails
15pass pass null / true / false
16pass pass multiline dict
17pass pass multiline array and command sub (only here docs disallowed)
18pass pass obj=>method() - remove?
19pass pass s->upper does NOT work, should be s.upper() or =>
20pass pass d.key
21pass pass a ++ b for string/list concatenation
22pass pass s ~~ glob and s !~~ glob
23pass pass Type Errors
24pass pass can't use ++ on integers
25pass pass can't do mystr ++ mylist
26pass pass expression literals
27pass pass No list comprehension in ^[]
28pass pass expression literals, evaluation failure
29pass pass expression literals, lazy evaluation
30pass pass expression literals, sugar for strings
54 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

osh3 Length doesn't apply to BashArray

[osh stdout] Expected 'shell=5\n', got ''
[osh status] Expected 3, 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 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 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1668, in _EvalBracedVarSub
    n = self._Count(val, part.name_tok)
  File "/home/uke/oil/osh/word_eval.py", line 952, in _Count
    count = bash_impl.BashArray_Count(val)
NameError: global name 'bash_impl' is not defined
osh_ALT3 Length doesn't apply to BashArray

[osh_ALT stdout] Expected 'shell=5\n', got ''
[osh_ALT status] Expected 3, got 1
[osh_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 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 2178, in ExecuteAndCatch
    raise  # 'eval break' and 'source return.sh', etc.
  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 1915, in _Dispatch
    status = self._DoTimeBlock(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1738, in _EvalBracedVarSub
    e_die('Not implemented', op.tok)
  File "/home/uke/oil/osh/word_eval.py", line 952, in _Count
    count = bash_impl.BashArray_Count(val)
NameError: global name 'bash_impl' is not defined
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.28.0/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
osh_ALT5 Func with multiple args in multiple contexts

[osh_ALT stdout] Expected '7 7\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  source $LIB_YSH/math.ysh
         ^~~~~~~~
[ stdin ]:3: 'source' failed: No builtin file 'stdlib/ysh/math.ysh'
  source $LIB_YSH/math.ysh
  ^~~~~~
[ stdin ]:3: errexit PID 5312: command.Simple failed with status 1
osh_ALT6 Trailing Comma in Param list

[osh_ALT stdout] Expected '7 7\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  source $LIB_YSH/math.ysh
         ^~~~~~~~
[ stdin ]:3: 'source' failed: No builtin file 'stdlib/ysh/math.ysh'
  source $LIB_YSH/math.ysh
  ^~~~~~
[ stdin ]:3: errexit PID 5316: command.Simple failed with status 1
osh11 double quoted respects strict_array

[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 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 1242, in _EvalExpr
    return value.Str(self.word_ev.EvalDoubleQuotedToString(node))
  File "/home/uke/oil/osh/word_eval.py", line 1462, in EvalDoubleQuotedToString
    self._EvalDoubleQuoted(dq_part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 235, in _ValueToPartValue
    return part_value.Array(bash_impl.BashArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
osh_ALT11 double quoted respects strict_array

[osh_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 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 2178, in ExecuteAndCatch
    raise  # 'eval break' and 'source return.sh', etc.
  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 1915, in _Dispatch
    status = self._DoTimeBlock(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 1242, in _EvalExpr
    return value.Str(self.word_ev.EvalDoubleQuotedToString(node))
  File "/home/uke/oil/osh/word_eval.py", line 1462, in EvalDoubleQuotedToString
    self._EvalDoubleQuoted(dq_part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 235, in _ValueToPartValue
    return part_value.Array(bash_impl.BashArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.28.0/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
osh14 braced var sub respects strict_array

[osh stdout] Expected 'a b c\n', got ''
[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 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 1250, in _EvalExpr
    return value.Str(self.word_ev.EvalBracedVarSubToString(node))
  File "/home/uke/oil/osh/word_eval.py", line 1790, in EvalBracedVarSubToString
    self._EvalBracedVarSub(part, part_vals, False)
  File "/home/uke/oil/osh/word_eval.py", line 1715, in _EvalBracedVarSub
    vsub_state):
  File "/home/uke/oil/osh/word_eval.py", line 808, in _ApplyTestOp
    self._EvalRhsWordToParts(op.arg_word, part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2022, in _EvalRhsWordToParts
    self._EvalWordToParts(w, part_vals, eval_flags=eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart
    self._EvalSimpleVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub
    v = _ValueToPartValue(val, quoted, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
osh_ALT14 braced var sub respects strict_array

[osh_ALT stdout] Expected 'a b c\n', got ''
[osh_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 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 2178, in ExecuteAndCatch
    raise  # 'eval break' and 'source return.sh', etc.
  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 1915, in _Dispatch
    status = self._DoTimeBlock(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 1250, in _EvalExpr
    return value.Str(self.word_ev.EvalBracedVarSubToString(node))
  File "/home/uke/oil/osh/word_eval.py", line 1790, in EvalBracedVarSubToString
    self._EvalBracedVarSub(part, part_vals, False)
  File "/home/uke/oil/osh/word_eval.py", line 1715, in _EvalBracedVarSub
    vsub_state):
  File "/home/uke/oil/osh/word_eval.py", line 808, in _ApplyTestOp
    self._EvalRhsWordToParts(op.arg_word, part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2022, in _EvalRhsWordToParts
    self._EvalWordToParts(w, part_vals, eval_flags=eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart
    self._EvalSimpleVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub
    v = _ValueToPartValue(val, quoted, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.28.0/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47