Update old tests

This commit is contained in:
Leonardo Alt
2021-04-08 21:03:39 +02:00
parent d617ef461e
commit 0a4afa71bd
1036 changed files with 3950 additions and 3904 deletions
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function f() public pure returns (uint y) {
unchecked{{
@@ -10,3 +8,5 @@ contract C {
assert(y == 0);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint public x = msg.value - 10; // can underflow
constructor() payable {}
@@ -15,6 +13,8 @@ contract D {
}
}
}
// ====
// SMTEngine: all
// ----
// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call
// Warning 3944: (33-47): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
// Warning 3944: (160-174): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function add(uint16 a, uint16 b) public pure returns (uint16) {
return a + b; // can overflow
@@ -9,5 +7,7 @@ contract C {
unchecked { return add(a, b) + c; } // add can still overflow, `+ c` can't
}
}
// ====
// SMTEngine: all
// ----
// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535)
// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535)
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
modifier add(uint16 a, uint16 b) {
unchecked { a + b; } // overflow not reported
@@ -10,5 +8,7 @@ contract C {
return b + c; // can overflow
}
}
// ====
// SMTEngine: all
// ----
// Warning 4984: (258-263): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535)
// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535)
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract test {
function f() public pure returns (bool) {
int256 x = -2**255;
@@ -8,5 +6,7 @@ contract test {
return true;
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f()
// Warning 6328: (110-125): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function o() public pure {
uint x = type(uint).max;
@@ -25,3 +23,5 @@ contract C {
assert(x == type(int).max);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function f(int a, int b) public pure returns (int) {
return a % b; // can div by 0
@@ -13,6 +11,8 @@ contract C {
}
}
}
// ====
// SMTEngine: all
// ----
// Warning 4281: (118-123): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0)
// Warning 4984: (275-281): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true)
// Warning 4281: (85-90): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0)
// Warning 4984: (242-248): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true)
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function add(uint16 a, uint16 b) public pure returns (uint16) {
unchecked {
@@ -11,5 +9,7 @@ contract C {
return add(a, 0x100) + 0x100; // should overflow on `+ 0x100`
}
}
// ====
// SMTEngine: all
// ----
// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call
// Warning 4984: (240-261): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
function div(uint256 a, uint256 b) public pure returns (uint256) {
// Does not disable div by zero check
@@ -15,6 +13,8 @@ contract C {
}
}
}
// ====
// SMTEngine: all
// ----
// Warning 4281: (202-207): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0)
// Warning 4281: (382-387): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0)
// Warning 4281: (169-174): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0)
// Warning 4281: (349-354): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0)
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
modifier m() {
@@ -15,4 +13,6 @@ contract C {
}
// ====
// SMTEngine: all
// ----
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
function f(uint x) internal pure {
unchecked {
@@ -10,5 +9,7 @@ contract C {
unchecked { f(x); }
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (117-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call
// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call