disabling some tests because of nondeterminism in Spacer

This commit is contained in:
Martin Blicha 2020-12-28 16:07:23 +01:00
parent 745466b71f
commit 77dff222e9
3 changed files with 15 additions and 23 deletions

View File

@ -11,21 +11,17 @@ contract C {
// should hold but the engine cannot infer that data is fully equals data[:data.length] because each index is assigned separately // should hold but the engine cannot infer that data is fully equals data[:data.length] because each index is assigned separately
//assert(b1.length == b3.length); // fails for now //assert(b1.length == b3.length); // fails for now
bytes memory b4 = abi.encode(data[5:10]); // Disabled because of Spacer nondeterminism
assert(b1.length == b4.length); // should fail //bytes memory b4 = abi.encode(data[5:10]);
//assert(b1.length == b4.length); // should fail
uint x = 5; // Disabled because of Spacer nondeterminism in Z3 4.8.9
uint y = 10; //uint x = 5;
bytes memory b5 = abi.encode(data[x:y]); //uint y = 10;
//bytes memory b5 = abi.encode(data[x:y]);
// should hold but the engine cannot infer that data[5:10] is fully equals data[x:y] because each index is assigned separately // should hold but the engine cannot infer that data[5:10] is fully equals data[x:y] because each index is assigned separately
assert(b1.length == b5.length); // fails for now //assert(b1.length == b5.length); // fails for now
} }
} }
// ---- // ----
// Warning 6328: (311-341): CHC: Assertion violation happens here. // Warning 6328: (311-341): CHC: Assertion violation happens here.
// Warning 1218: (694-724): CHC: Error trying to invoke SMT solver.
// Warning 6328: (694-724): CHC: Assertion violation might happen here.
// Warning 1218: (945-975): CHC: Error trying to invoke SMT solver.
// Warning 6328: (945-975): CHC: Assertion violation might happen here.
// Warning 4661: (694-724): BMC: Assertion violation happens here.
// Warning 4661: (945-975): BMC: Assertion violation happens here.

View File

@ -14,7 +14,8 @@ contract C {
bytes memory b5 = abi.encode(y, y, y, y, a, a, a); bytes memory b5 = abi.encode(y, y, y, y, a, a, a);
assert(b1.length != b5.length); // should fail assert(b1.length != b5.length); // should fail
assert(b1.length == b5.length); // should fail // Disabled because of nondeterminism in Spacer Z3 4.8.9
//assert(b1.length == b5.length); // should fail
} }
} }
// ---- // ----
@ -24,7 +25,6 @@ contract C {
// Warning 6328: (421-451): CHC: Assertion violation might happen here. // Warning 6328: (421-451): CHC: Assertion violation might happen here.
// Warning 1218: (524-554): CHC: Error trying to invoke SMT solver. // Warning 1218: (524-554): CHC: Error trying to invoke SMT solver.
// Warning 6328: (524-554): CHC: Assertion violation might happen here. // Warning 6328: (524-554): CHC: Assertion violation might happen here.
// Warning 6328: (573-603): CHC: Assertion violation happens here.
// Warning 4661: (330-360): BMC: Assertion violation happens here. // Warning 4661: (330-360): BMC: Assertion violation happens here.
// Warning 4661: (421-451): BMC: Assertion violation happens here. // Warning 4661: (421-451): BMC: Assertion violation happens here.
// Warning 4661: (524-554): BMC: Assertion violation happens here. // Warning 4661: (524-554): BMC: Assertion violation happens here.

View File

@ -4,17 +4,13 @@ contract C
{ {
function f(uint x) public pure { function f(uint x) public pure {
require(x < 100); require(x < 100);
for(uint i = 0; i < 10; ++i) { for(uint i = 0; i < 5; ++i) {
// Overflows due to resetting x.
x = x + 1; x = x + 1;
} }
// Assertion is safe but current solver version cannot solve it. // Disabled because of non-determinism in Spacer in Z3 4.8.9, check with next solver release.
// Keep test for next solver release. //assert(x > 0);
assert(x > 0);
} }
} }
// ---- // ----
// Warning 4984: (176-181): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. // Warning 4984: (139-144): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here.
// Warning 6328: (296-309): CHC: Assertion violation might happen here. // Warning 2661: (139-144): BMC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 2661: (176-181): BMC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4661: (296-309): BMC: Assertion violation happens here.