mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #12037 from ethereum/smt_ignore_os
Add isoltest option to ignore OS
This commit is contained in:
commit
089cad0319
@ -66,6 +66,21 @@ SMTCheckerTest::SMTCheckerTest(string const& _filename): SyntaxTest(_filename, E
|
||||
m_ignoreCex = true;
|
||||
else
|
||||
BOOST_THROW_EXCEPTION(runtime_error("Invalid SMT counterexample choice."));
|
||||
|
||||
auto const& ignoreOSSetting = m_reader.stringSetting("SMTIgnoreOS", "none");
|
||||
for (string const& os: ignoreOSSetting | ranges::views::split(',') | ranges::to<vector<string>>())
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
if (os == "macos")
|
||||
m_shouldRun = false;
|
||||
#elif _WIN32
|
||||
if (os == "windows")
|
||||
m_shouldRun = false;
|
||||
#elif __linux__
|
||||
if (os == "linux")
|
||||
m_shouldRun = false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
TestCase::TestResult SMTCheckerTest::run(ostream& _stream, string const& _linePrefix, bool _formatted)
|
||||
|
@ -2,13 +2,17 @@ contract C {
|
||||
function g(address payable i) public {
|
||||
require(address(this).balance == 100);
|
||||
i.call{value: 10}("");
|
||||
// Disabled due to Spacer nondeterminism
|
||||
//assert(address(this).balance == 90); // should hold
|
||||
// Disabled due to Spacer nondeterminism
|
||||
//assert(address(this).balance == 100); // should fail
|
||||
assert(address(this).balance == 90); // should hold
|
||||
assert(address(this).balance == 100); // should fail
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// SMTIgnoreOS: macos
|
||||
// ----
|
||||
// Warning 9302: (96-117): Return value of low-level calls not used.
|
||||
// Warning 1218: (175-211): CHC: Error trying to invoke SMT solver.
|
||||
// Warning 6328: (121-156): CHC: Assertion violation might happen here.
|
||||
// Warning 6328: (175-211): CHC: Assertion violation might happen here.
|
||||
// Warning 4661: (121-156): BMC: Assertion violation happens here.
|
||||
// Warning 4661: (175-211): BMC: Assertion violation happens here.
|
||||
|
Loading…
Reference in New Issue
Block a user