aboutsummaryrefslogtreecommitdiff
path: root/test/expr.test
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-09-20 22:04:05 +0000
committerdrh <drh@noemail.net>2016-09-20 22:04:05 +0000
commit09952c6490fb1004055bd4a1c83d85fa781da1f2 (patch)
tree4e4f6bc76ae655916985d9d38857bf84400013d4 /test/expr.test
parentd8992cef36568fcc8b42e5c3c6e4bc7999d8b7db (diff)
downloadsqlite-09952c6490fb1004055bd4a1c83d85fa781da1f2.tar.gz
sqlite-09952c6490fb1004055bd4a1c83d85fa781da1f2.zip
Improved implementation of 64-bit signed integer multiply that correctly
detects overflow (and promotes to floating-point) in some corner cases. Fix for ticket [1ec41379c9c1e400] FossilOrigin-Name: db3ebd7c52cfc5fcc7be00f52e9d7c84719f7b93
Diffstat (limited to 'test/expr.test')
-rw-r--r--test/expr.test27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/expr.test b/test/expr.test
index 7d7b8ce5a..7a6d47725 100644
--- a/test/expr.test
+++ b/test/expr.test
@@ -308,6 +308,33 @@ ifcapable floatingpoint {if {[working_64bit_int]} {
test_realnum_expr expr-1.257\
{i1=-4294967296, i2=-2147483647} {i1*i2} 9223372032559808512
+ test_realnum_expr expr-1.260\
+ {i1=3037000500, i2=3037000500} {i1*i2} 9.22337203700025e+18
+ test_realnum_expr expr-1.261\
+ {i1=3037000500, i2=-3037000500} {i1*i2} -9.22337203700025e+18
+ test_realnum_expr expr-1.262\
+ {i1=-3037000500, i2=3037000500} {i1*i2} -9.22337203700025e+18
+ test_realnum_expr expr-1.263\
+ {i1=-3037000500, i2=-3037000500} {i1*i2} 9.22337203700025e+18
+
+ test_realnum_expr expr-1.264\
+ {i1=3037000500, i2=3037000499} {i1*i2} 9223372033963249500
+ test_realnum_expr expr-1.265\
+ {i1=3037000500, i2=-3037000499} {i1*i2} -9223372033963249500
+ test_realnum_expr expr-1.266\
+ {i1=-3037000500, i2=3037000499} {i1*i2} -9223372033963249500
+ test_realnum_expr expr-1.267\
+ {i1=-3037000500, i2=-3037000499} {i1*i2} 9223372033963249500
+
+ test_realnum_expr expr-1.268\
+ {i1=3037000499, i2=3037000500} {i1*i2} 9223372033963249500
+ test_realnum_expr expr-1.269\
+ {i1=3037000499, i2=-3037000500} {i1*i2} -9223372033963249500
+ test_realnum_expr expr-1.270\
+ {i1=-3037000499, i2=3037000500} {i1*i2} -9223372033963249500
+ test_realnum_expr expr-1.271\
+ {i1=-3037000499, i2=-3037000500} {i1*i2} 9223372033963249500
+
}}
ifcapable floatingpoint {