mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Remove canEnableViaYul logic and default to compiling also via yul.
This commit is contained in:
parent
e93ad30e43
commit
788dc6b4c8
@ -71,7 +71,7 @@ SemanticTest::SemanticTest(
|
|||||||
if (m_runWithABIEncoderV1Only && !solidity::test::CommonOptions::get().useABIEncoderV1)
|
if (m_runWithABIEncoderV1Only && !solidity::test::CommonOptions::get().useABIEncoderV1)
|
||||||
m_shouldRun = false;
|
m_shouldRun = false;
|
||||||
|
|
||||||
string compileViaYul = m_reader.stringSetting("compileViaYul", "default");
|
string compileViaYul = m_reader.stringSetting("compileViaYul", "also");
|
||||||
if (m_runWithABIEncoderV1Only && compileViaYul != "false")
|
if (m_runWithABIEncoderV1Only && compileViaYul != "false")
|
||||||
BOOST_THROW_EXCEPTION(runtime_error(
|
BOOST_THROW_EXCEPTION(runtime_error(
|
||||||
"ABIEncoderV1Only tests cannot be run via yul, "
|
"ABIEncoderV1Only tests cannot be run via yul, "
|
||||||
@ -345,7 +345,6 @@ TestCase::TestResult SemanticTest::runTest(
|
|||||||
m_compileToEwasm = _isEwasmRun;
|
m_compileToEwasm = _isEwasmRun;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_canEnableYulRun = false;
|
|
||||||
m_canEnableEwasmRun = false;
|
m_canEnableEwasmRun = false;
|
||||||
|
|
||||||
if (_isYulRun)
|
if (_isYulRun)
|
||||||
@ -465,18 +464,6 @@ TestCase::TestResult SemanticTest::runTest(
|
|||||||
success &= test.call().expectedSideEffects == test.call().actualSideEffects;
|
success &= test.call().expectedSideEffects == test.call().actualSideEffects;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_testCaseWantsYulRun && _isYulRun)
|
|
||||||
{
|
|
||||||
m_canEnableYulRun = success;
|
|
||||||
string message = success ?
|
|
||||||
"Test can pass via Yul, but marked with \"compileViaYul: false.\"" :
|
|
||||||
"Test compiles via Yul, but it gives different test results.";
|
|
||||||
AnsiColorized(_stream, _formatted, {BOLD, success ? YELLOW : MAGENTA}) <<
|
|
||||||
_linePrefix << endl <<
|
|
||||||
_linePrefix << message << endl;
|
|
||||||
return TestResult::Failure;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Right now we have sometimes different test results in Yul vs. Ewasm.
|
// Right now we have sometimes different test results in Yul vs. Ewasm.
|
||||||
// The main reason is that Ewasm just returns a failure in some cases.
|
// The main reason is that Ewasm just returns a failure in some cases.
|
||||||
// TODO: If Ewasm support got fully implemented, we could implement this in the same way as above.
|
// TODO: If Ewasm support got fully implemented, we could implement this in the same way as above.
|
||||||
@ -654,25 +641,19 @@ void SemanticTest::printUpdatedExpectations(ostream& _stream, string const&) con
|
|||||||
void SemanticTest::printUpdatedSettings(ostream& _stream, string const& _linePrefix)
|
void SemanticTest::printUpdatedSettings(ostream& _stream, string const& _linePrefix)
|
||||||
{
|
{
|
||||||
auto& settings = m_reader.settings();
|
auto& settings = m_reader.settings();
|
||||||
if (settings.empty() && !m_canEnableYulRun)
|
if (settings.empty() && !m_canEnableEwasmRun)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_stream << _linePrefix << "// ====" << endl;
|
_stream << _linePrefix << "// ====" << endl;
|
||||||
if (m_canEnableEwasmRun)
|
if (m_canEnableEwasmRun)
|
||||||
{
|
{
|
||||||
soltestAssert(m_canEnableYulRun || m_testCaseWantsYulRun, "");
|
soltestAssert(m_testCaseWantsYulRun, "");
|
||||||
string compileViaYul = m_reader.stringSetting("compileViaYul", "");
|
|
||||||
if (!compileViaYul.empty())
|
|
||||||
_stream << _linePrefix << "// compileViaYul: " << compileViaYul << "\n";
|
|
||||||
_stream << _linePrefix << "// compileToEwasm: also\n";
|
_stream << _linePrefix << "// compileToEwasm: also\n";
|
||||||
}
|
}
|
||||||
else if (m_canEnableYulRun)
|
|
||||||
_stream << _linePrefix << "// compileViaYul: also\n";
|
|
||||||
|
|
||||||
for (auto const& [settingName, settingValue]: settings)
|
for (auto const& [settingName, settingValue]: settings)
|
||||||
if (
|
if (
|
||||||
!(settingName == "compileToEwasm" && m_canEnableEwasmRun) &&
|
!(settingName == "compileToEwasm" && m_canEnableEwasmRun)
|
||||||
!(settingName == "compileViaYul" && (m_canEnableYulRun || m_canEnableEwasmRun))
|
|
||||||
)
|
)
|
||||||
_stream << _linePrefix << "// " << settingName << ": " << settingValue<< endl;
|
_stream << _linePrefix << "// " << settingName << ": " << settingValue<< endl;
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,6 @@ private:
|
|||||||
bool m_enforceCompileToEwasm = false;
|
bool m_enforceCompileToEwasm = false;
|
||||||
bool m_runWithABIEncoderV1Only = false;
|
bool m_runWithABIEncoderV1Only = false;
|
||||||
bool m_allowNonExistingFunctions = false;
|
bool m_allowNonExistingFunctions = false;
|
||||||
bool m_canEnableYulRun = false;
|
|
||||||
bool m_canEnableEwasmRun = false;
|
bool m_canEnableEwasmRun = false;
|
||||||
bool m_gasCostFailure = false;
|
bool m_gasCostFailure = false;
|
||||||
bool m_enforceGasCost = false;
|
bool m_enforceGasCost = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user