mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Remove nondet tests
This commit is contained in:
parent
f2f84a7f97
commit
25f75ce547
@ -301,9 +301,17 @@ optional<string> Predicate::expressionToString(smtutil::Expression const& _expr,
|
||||
solAssert(_expr.name == "tuple_constructor", "");
|
||||
auto const& tupleSort = dynamic_cast<TupleSort const&>(*_expr.sort);
|
||||
solAssert(tupleSort.components.size() == 2, "");
|
||||
|
||||
auto length = stoul(_expr.arguments.at(1).name);
|
||||
// Limit this counterexample size to 1k.
|
||||
// Some OSs give you "unlimited" memory through swap and other virtual memory,
|
||||
// so purely relying on bad_alloc being thrown is not a good idea.
|
||||
// In that case, the array allocation might cause OOM and the program is killed.
|
||||
if (length >= 1024)
|
||||
return {};
|
||||
try
|
||||
{
|
||||
vector<string> array(stoul(_expr.arguments.at(1).name));
|
||||
vector<string> array(length);
|
||||
if (!fillArray(_expr.arguments.at(0), array, arrayType))
|
||||
return {};
|
||||
return "[" + boost::algorithm::join(array, ", ") + "]";
|
||||
|
@ -7,9 +7,7 @@ contract C {
|
||||
function f(bool b) public {
|
||||
if (b)
|
||||
s.x[2] |= 1;
|
||||
assert(s.x[2] != 1);
|
||||
// Removed because of Spacer nondeterminism.
|
||||
//assert(s.x[2] != 1);
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (173-192): CHC: Assertion violation might happen here.
|
||||
// Warning 7812: (173-192): BMC: Assertion violation might happen here.
|
||||
|
@ -17,7 +17,8 @@ contract C
|
||||
// Should not fail since knowledge is erased only for mapping (uint => uint).
|
||||
assert(severalMaps8[0][0] == 42);
|
||||
// Should not fail since singleMap == severalMaps3d[0][0] is not possible.
|
||||
assert(severalMaps3d[0][0][0] == 42);
|
||||
// Removed because of Spacer nondeterminism.
|
||||
//assert(severalMaps3d[0][0][0] == 42);
|
||||
// Should fail since singleMap == map is possible.
|
||||
assert(map[0] == 42);
|
||||
}
|
||||
@ -26,4 +27,4 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (781-801): CHC: Assertion violation happens here.
|
||||
// Warning 6328: (830-850): CHC: Assertion violation happens here.
|
||||
|
Loading…
Reference in New Issue
Block a user