Skip to content

Commit 3fb2f1d

Browse files
committed
AnalysisFramework: Move common setup to the framework
1 parent d2bfb2f commit 3fb2f1d

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

test/libsolidity/AnalysisFramework.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,12 @@ std::unique_ptr<CompilerStack> AnalysisFramework::createStack() const
8686

8787
void AnalysisFramework::setupCompiler(CompilerStack& _compiler)
8888
{
89+
// These are just defaults based on the (global) CLI options.
90+
// Technically, every TestCase should override these with values passed to it in TestCase::Config.
91+
// In practice TestCase::Config always matches global config so most test cases don't care.
8992
_compiler.setEVMVersion(solidity::test::CommonOptions::get().evmVersion());
93+
_compiler.setEOFVersion(solidity::test::CommonOptions::get().eofVersion());
94+
_compiler.setOptimiserSettings(solidity::test::CommonOptions::get().optimize);
9095
}
9196

9297
void AnalysisFramework::executeCompilationPipeline()

test/libsolidity/GasTest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ void GasTest::printUpdatedExpectations(std::ostream& _stream, std::string const&
9999

100100
void GasTest::setupCompiler(CompilerStack& _compiler)
101101
{
102+
AnalysisFramework::setupCompiler(_compiler);
102103

103104
// Prerelease CBOR metadata varies in size due to changing version numbers and build dates.
104105
// This leads to volatile creation cost estimates. Therefore we force the compiler to
@@ -112,6 +113,10 @@ void GasTest::setupCompiler(CompilerStack& _compiler)
112113
}
113114
settings.expectedExecutionsPerDeployment = m_optimiseRuns;
114115
_compiler.setOptimiserSettings(settings);
116+
117+
// Intentionally ignoring EVM version specified on the command line.
118+
// Gas expectations are only valid for the default version.
119+
_compiler.setEVMVersion(EVMVersion{});
115120
}
116121

117122
TestCase::TestResult GasTest::run(std::ostream& _stream, std::string const& _linePrefix, bool _formatted)

test/libsolidity/MemoryGuardTest.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ using namespace yul;
3838

3939
void MemoryGuardTest::setupCompiler(CompilerStack& _compiler)
4040
{
41+
AnalysisFramework::setupCompiler(_compiler);
42+
4143
_compiler.setViaIR(true);
4244
_compiler.setOptimiserSettings(OptimiserSettings::none());
4345
}

test/libsolidity/SolidityCompiler.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class SolidityCompilerFixture: protected AnalysisFramework
3232
{
3333
void setupCompiler(CompilerStack& _compiler) override
3434
{
35+
AnalysisFramework::setupCompiler(_compiler);
36+
3537
// FIXME: This test was probably supposed to respect CommonOptions::get().optimize but
3638
// due to a bug it was always running with optimizer disabled and it does not pass with it.
3739
_compiler.setOptimiserSettings(false);

0 commit comments

Comments
 (0)