Results for oil-expr-compare.test.sh

statusosh
pass 10
FAIL 2
total12
caseoshdescription
0pass Exact equality with === and !==
1pass Approximate equality of Str x {Str, Int, Bool} with ~==
2pass Wrong Types with ~==
3FAIL Equality of ~== with Float (deferred)
details
4pass Comparison of Int
5pass Comparison of Str does conversion to Int
6pass Mixed Type Comparison does conversion to Int
7pass Invalid String is an error
8pass Bool conversion -- explicit allowed, implicit not allowed
9pass Chained Comparisons
10FAIL Tuple comparison is not allowed
details
11pass Collection membership
10 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh3 Equality of ~== with Float (deferred)

[osh status] Expected 0, got 1

stdout:
stderr: 
  if (42 ~== 42.0) {
         ^~~
[ stdin ]:3: fatal: ~== expects a string on the left
osh10 Tuple comparison is not allowed

[osh stdout] Expected 'yes1\nyes2\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 224, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 199, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 146, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 883, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 347, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 1694, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1519, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1399, in _Dispatch
    b = self._EvalCondition(if_arm.cond, if_arm.keyword)
  File "/home/uke/oil/osh/cmd_eval.py", line 618, in _EvalCondition
    obj = self.expr_ev.EvalExpr(cond.e, blame_tok)
  File "/home/uke/oil/oil_lang/expr_eval.py", line 561, in EvalExpr
    return self._EvalExpr(node)
  File "/home/uke/oil/oil_lang/expr_eval.py", line 1352, in _EvalExpr
    return _ValueToPyObj(self._EvalCompare(node))
  File "/home/uke/oil/oil_lang/expr_eval.py", line 1073, in _EvalCompare
    left = _PyObjToValue(self._EvalExpr(node.left))
  File "/home/uke/oil/oil_lang/expr_eval.py", line 141, in _PyObjToValue
    raise NotImplementedError()
NotImplementedError