ysh-expr-arith () { run-file ysh-expr-arith "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } ysh-expr-arith: spec test case results

Results for ysh-expr-arith.test.sh

statusosh
pass 16
FAIL 1
total17
caseoshdescription
0pass Minus operator is left associative
1pass Division operators are left associative
2pass Exponentiation is right associative
3pass Binary operators, with conversions from string
4pass Floating Point Division with /
5pass Operations That Convert to Integer: // % **
6pass Division by zero
7pass Unary Operations
8pass unary minus on strings
9pass unary ~ complement on strings
10pass unary ~ doesn't work on bool
11pass unary ~ doesn't work on float
12pass unary - applied to bool is not allowed
13pass Big float constants becomes inf and -inf, tiny become 0.0 and -0.0
14FAIL Int constants bigger than 64 bits
details
15pass 64-bit operations
16pass 64-bit integer doesn't overflow
16 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

osh14 Int constants bigger than 64 bits

[osh stdout] Expected '(Int) 1111\ndec=0\ndec=2\n(Int) 3\nbin=0\nbin=2\n(Int) 63\noct=0\noct=2\n(Int) 255\nhex=0\nhex=2\n' Got '(Int) 1111\ndec=0\n(Int) 111122223333444455556666\ndec=0\n(Int) 3\nbin=0\n(Int) 4722366482869645213695\nbin=0\n(Int) 63\noct=0\n(Int) 674788526559709289910\noct=0\n(Int) 255\nhex=0\n(Int) 52818855605794001074506366975\nhex=0\n'

stdout:
(Int)   1111
dec=0
(Int)   111122223333444455556666
dec=0
(Int)   3
bin=0
(Int)   4722366482869645213695
bin=0
(Int)   63
oct=0
(Int)   674788526559709289910
oct=0
(Int)   255
hex=0
(Int)   52818855605794001074506366975
hex=0
stderr: