mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Correctly set evm version in tests
This commit is contained in:
parent
739533e9c7
commit
05cc5f22b2
@ -20,12 +20,16 @@
|
||||
* Tests for the json ast output.
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <libsolidity/interface/Exceptions.h>
|
||||
#include <libsolidity/interface/CompilerStack.h>
|
||||
#include <libsolidity/ast/ASTJsonConverter.h>
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace dev
|
||||
@ -41,6 +45,7 @@ BOOST_AUTO_TEST_CASE(smoke_test)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C {}");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -52,6 +57,7 @@ BOOST_AUTO_TEST_CASE(source_location)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { function f() { var x = 2; x++; } }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -66,6 +72,7 @@ BOOST_AUTO_TEST_CASE(inheritance_specifier)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C1 {} contract C2 is C1 {}");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -81,6 +88,7 @@ BOOST_AUTO_TEST_CASE(using_for_directive)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "library L {} contract C { using L for uint; }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -98,6 +106,7 @@ BOOST_AUTO_TEST_CASE(enum_value)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { enum E { A, B } }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -115,6 +124,7 @@ BOOST_AUTO_TEST_CASE(modifier_definition)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { modifier M(uint i) { _; } function F() M(1) {} }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -129,6 +139,7 @@ BOOST_AUTO_TEST_CASE(modifier_invocation)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { modifier M(uint i) { _; } function F() M(1) {} }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -145,6 +156,7 @@ BOOST_AUTO_TEST_CASE(event_definition)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { event E(); }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -159,6 +171,7 @@ BOOST_AUTO_TEST_CASE(array_type_name)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { uint[] i; }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -172,6 +185,7 @@ BOOST_AUTO_TEST_CASE(placeholder_statement)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { modifier M { _; } }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -185,6 +199,7 @@ BOOST_AUTO_TEST_CASE(non_utf8)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { function f() { var x = hex\"ff\"; } }");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -204,6 +219,7 @@ BOOST_AUTO_TEST_CASE(function_type)
|
||||
"contract C { function f(function() external payable returns (uint) x) "
|
||||
"returns (function() external constant returns (uint)) {} }"
|
||||
);
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
@ -244,6 +260,7 @@ BOOST_AUTO_TEST_CASE(documentation)
|
||||
" /** Some comment on fn.*/ function fn() public {}"
|
||||
"}"
|
||||
);
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
c.parseAndAnalyze();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 0;
|
||||
|
@ -20,6 +20,8 @@
|
||||
|
||||
#include <test/libsolidity/AnalysisFramework.h>
|
||||
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <libsolidity/interface/CompilerStack.h>
|
||||
#include <libsolidity/interface/SourceReferenceFormatter.h>
|
||||
|
||||
@ -46,6 +48,7 @@ AnalysisFramework::parseAnalyseAndReturnError(
|
||||
{
|
||||
m_compiler.reset();
|
||||
m_compiler.addSource("", _insertVersionPragma ? "pragma solidity >=0.0;\n" + _source : _source);
|
||||
m_compiler.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
if (!m_compiler.parse())
|
||||
{
|
||||
BOOST_ERROR("Parsing contract failed in analysis test suite:" + formatErrors());
|
||||
|
@ -20,6 +20,8 @@
|
||||
* Unit tests for Assembly Items from evmasm/Assembly.h
|
||||
*/
|
||||
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <libevmasm/SourceLocation.h>
|
||||
#include <libevmasm/Assembly.h>
|
||||
|
||||
@ -72,7 +74,7 @@ eth::AssemblyItems compileContract(string const& _sourceCode)
|
||||
for (ASTPointer<ASTNode> const& node: sourceUnit->nodes())
|
||||
if (ContractDefinition* contract = dynamic_cast<ContractDefinition*>(node.get()))
|
||||
{
|
||||
TypeChecker checker(EVMVersion{}, errorReporter);
|
||||
TypeChecker checker(dev::test::Options::get().evmVersion(), errorReporter);
|
||||
BOOST_REQUIRE_NO_THROW(checker.checkTypeRequirements(*contract));
|
||||
if (!Error::containsOnlyWarnings(errorReporter.errors()))
|
||||
return AssemblyItems();
|
||||
@ -80,7 +82,7 @@ eth::AssemblyItems compileContract(string const& _sourceCode)
|
||||
for (ASTPointer<ASTNode> const& node: sourceUnit->nodes())
|
||||
if (ContractDefinition* contract = dynamic_cast<ContractDefinition*>(node.get()))
|
||||
{
|
||||
Compiler compiler;
|
||||
Compiler compiler(dev::test::Options::get().evmVersion());
|
||||
compiler.compileContract(*contract, map<ContractDefinition const*, Assembly const*>{}, bytes());
|
||||
|
||||
return compiler.runtimeAssemblyItems();
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
m_compiler.reset(false);
|
||||
m_compiler.addSource("", "pragma solidity >=0.0;\n" + _sourceCode);
|
||||
m_compiler.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
m_compiler.setEVMVersion(m_evmVersion);
|
||||
BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed");
|
||||
|
||||
AssemblyItems const* items = m_compiler.runtimeAssemblyItems(m_compiler.lastContractName());
|
||||
|
@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
#include <test/libsolidity/ErrorCheck.h>
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <libsolidity/interface/Exceptions.h>
|
||||
#include <libsolidity/interface/CompilerStack.h>
|
||||
@ -44,6 +45,7 @@ BOOST_AUTO_TEST_CASE(smoke_test)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -52,6 +54,7 @@ BOOST_AUTO_TEST_CASE(regular_import)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C {} pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\"; contract D is C {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -60,6 +63,7 @@ BOOST_AUTO_TEST_CASE(import_does_not_clutter_importee)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { D d; } pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\"; contract D is C {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
}
|
||||
|
||||
@ -69,6 +73,7 @@ BOOST_AUTO_TEST_CASE(import_is_transitive)
|
||||
c.addSource("a", "contract C { } pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\"; pragma solidity >=0.0;");
|
||||
c.addSource("c", "import \"b\"; contract D is C {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -77,6 +82,7 @@ BOOST_AUTO_TEST_CASE(circular_import)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "import \"b\"; contract C { D d; } pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\"; contract D { C c; } pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -86,6 +92,7 @@ BOOST_AUTO_TEST_CASE(relative_import)
|
||||
c.addSource("a", "import \"./dir/b\"; contract A is B {} pragma solidity >=0.0;");
|
||||
c.addSource("dir/b", "contract B {} pragma solidity >=0.0;");
|
||||
c.addSource("dir/c", "import \"../a\"; contract C is A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -94,6 +101,7 @@ BOOST_AUTO_TEST_CASE(relative_import_multiplex)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||
c.addSource("dir/a/b/c", "import \"../../.././a\"; contract B is A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -102,6 +110,7 @@ BOOST_AUTO_TEST_CASE(simple_alias)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||
c.addSource("dir/a/b/c", "import \"../../.././a\" as x; contract B is x.A { function() { x.A r = x.A(20); } } pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -111,6 +120,7 @@ BOOST_AUTO_TEST_CASE(library_name_clash)
|
||||
c.addSource("a", "library A {} pragma solidity >=0.0;");
|
||||
c.addSource("b", "library A {} pragma solidity >=0.0;");
|
||||
c.addSource("c", "import {A} from \"./a\"; import {A} from \"./b\";");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
}
|
||||
|
||||
@ -119,6 +129,7 @@ BOOST_AUTO_TEST_CASE(library_name_clash_with_contract)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||
c.addSource("b", "library A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -128,6 +139,7 @@ BOOST_AUTO_TEST_CASE(complex_import)
|
||||
c.addSource("a", "contract A {} contract B {} contract C { struct S { uint a; } } pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\" as x; import {B as b, C as c, C} from \"a\"; "
|
||||
"contract D is b { function f(c.S var1, x.C.S var2, C.S var3) internal {} } pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -136,14 +148,19 @@ BOOST_AUTO_TEST_CASE(name_clash_in_import)
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||
c.addSource("b", "import \"a\"; contract A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
c.addSource("b", "import \"a\" as A; contract A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
c.addSource("b", "import {A as b} from \"a\"; contract b {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
c.addSource("b", "import {A} from \"a\"; contract A {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
c.addSource("b", "import {A} from \"a\"; contract B {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -155,6 +172,7 @@ BOOST_AUTO_TEST_CASE(remappings)
|
||||
c.addSource("b", "import \"t/tee.sol\"; contract A is Tee {} pragma solidity >=0.0;");
|
||||
c.addSource("s_1.4.6/s.sol", "contract S {} pragma solidity >=0.0;");
|
||||
c.addSource("Tee/tee.sol", "contract Tee {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -166,6 +184,7 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings)
|
||||
c.addSource("b/b.sol", "import \"s/s.sol\"; contract B is SSeven {} pragma solidity >=0.0;");
|
||||
c.addSource("s_1.4.6/s.sol", "contract SSix {} pragma solidity >=0.0;");
|
||||
c.addSource("s_1.4.7/s.sol", "contract SSeven {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -174,6 +193,7 @@ BOOST_AUTO_TEST_CASE(filename_with_period)
|
||||
CompilerStack c;
|
||||
c.addSource("a/a.sol", "import \".b.sol\"; contract A is B {} pragma solidity >=0.0;");
|
||||
c.addSource("a/.b.sol", "contract B {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
}
|
||||
|
||||
@ -185,6 +205,7 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings_ensure_default_and_module_pres
|
||||
c.addSource("vendor/bar/bar.sol", "import \"foo/foo.sol\"; contract Bar {Foo1 foo;} pragma solidity >=0.0;");
|
||||
c.addSource("vendor/foo_1.0.0/foo.sol", "contract Foo1 {} pragma solidity >=0.0;");
|
||||
c.addSource("vendor/foo_2.0.0/foo.sol", "contract Foo2 {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
}
|
||||
|
||||
@ -196,6 +217,7 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent)
|
||||
c.addSource("a/b/main.sol", "import \"x/y/z/z.sol\"; contract Main is E {} pragma solidity >=0.0;");
|
||||
c.addSource("d/z.sol", "contract D {} pragma solidity >=0.0;");
|
||||
c.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
CompilerStack d;
|
||||
d.setRemappings(vector<string>{"a/b:x=e", "a:x/y/z=d"});
|
||||
@ -203,6 +225,7 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent)
|
||||
d.addSource("a/b/main.sol", "import \"x/y/z/z.sol\"; contract Main is E {} pragma solidity >=0.0;");
|
||||
d.addSource("d/z.sol", "contract D {} pragma solidity >=0.0;");
|
||||
d.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
||||
d.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(d.compile());
|
||||
}
|
||||
|
||||
@ -212,6 +235,7 @@ BOOST_AUTO_TEST_CASE(shadowing_via_import)
|
||||
c.addSource("a", "library A {} pragma solidity >=0.0;");
|
||||
c.addSource("b", "library A {} pragma solidity >=0.0;");
|
||||
c.addSource("c", "import {A} from \"./a\"; import {A} from \"./b\";");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!c.compile());
|
||||
}
|
||||
|
||||
@ -225,6 +249,7 @@ BOOST_AUTO_TEST_CASE(shadowing_builtins_with_imports)
|
||||
contract C {
|
||||
}
|
||||
)");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
size_t errorCount = 0;
|
||||
for (auto const& e: c.errors())
|
||||
@ -251,6 +276,7 @@ BOOST_AUTO_TEST_CASE(shadowing_builtins_with_multiple_imports)
|
||||
contract C {
|
||||
}
|
||||
)");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
auto numErrors = c.errors().size();
|
||||
// Sometimes we get the prerelease warning, sometimes not.
|
||||
@ -274,6 +300,7 @@ BOOST_AUTO_TEST_CASE(shadowing_builtins_with_alias)
|
||||
pragma solidity >=0.0;
|
||||
import {C as msg} from "B.sol";
|
||||
)");
|
||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(c.compile());
|
||||
auto numErrors = c.errors().size();
|
||||
// Sometimes we get the prerelease warning, sometimes not.
|
||||
|
@ -46,6 +46,7 @@ BOOST_AUTO_TEST_CASE(metadata_stamp)
|
||||
)";
|
||||
CompilerStack compilerStack;
|
||||
compilerStack.addSource("", std::string(sourceCode));
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
bytes const& bytecode = compilerStack.runtimeObject("test").bytecode;
|
||||
@ -72,6 +73,7 @@ BOOST_AUTO_TEST_CASE(metadata_stamp_experimental)
|
||||
)";
|
||||
CompilerStack compilerStack;
|
||||
compilerStack.addSource("", std::string(sourceCode));
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
bytes const& bytecode = compilerStack.runtimeObject("test").bytecode;
|
||||
@ -106,6 +108,7 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources)
|
||||
}
|
||||
)";
|
||||
compilerStack.addSource("B", std::string(sourceCode));
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
|
||||
@ -144,6 +147,7 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources_imports)
|
||||
}
|
||||
)";
|
||||
compilerStack.addSource("C", std::string(sourceCode));
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
|
||||
|
@ -44,6 +44,8 @@ public:
|
||||
{
|
||||
m_compilerStack.reset(false);
|
||||
m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code);
|
||||
m_compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
m_compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(m_compilerStack.parseAndAnalyze(), "Parsing contract failed");
|
||||
|
||||
Json::Value generatedInterface = m_compilerStack.contractABI(m_compilerStack.lastContractName());
|
||||
|
@ -132,7 +132,7 @@ bytes compileFirstExpression(
|
||||
if (ContractDefinition* contract = dynamic_cast<ContractDefinition*>(node.get()))
|
||||
{
|
||||
ErrorReporter errorReporter(errors);
|
||||
TypeChecker typeChecker(EVMVersion{}, errorReporter);
|
||||
TypeChecker typeChecker(dev::test::Options::get().evmVersion(), errorReporter);
|
||||
BOOST_REQUIRE(typeChecker.checkTypeRequirements(*contract));
|
||||
}
|
||||
for (ASTPointer<ASTNode> const& node: sourceUnit->nodes())
|
||||
@ -141,7 +141,7 @@ bytes compileFirstExpression(
|
||||
FirstExpressionExtractor extractor(*contract);
|
||||
BOOST_REQUIRE(extractor.expression() != nullptr);
|
||||
|
||||
CompilerContext context;
|
||||
CompilerContext context(dev::test::Options::get().evmVersion());
|
||||
context.resetVisitedNodes(contract);
|
||||
context.setInheritanceHierarchy(inheritanceHierarchy);
|
||||
unsigned parametersSize = _localVariables.size(); // assume they are all one slot on the stack
|
||||
|
@ -22,6 +22,8 @@
|
||||
|
||||
#include <test/libsolidity/AnalysisFramework.h>
|
||||
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <libsolidity/ast/AST.h>
|
||||
|
||||
#include <libdevcore/SHA3.h>
|
||||
|
@ -47,6 +47,7 @@ public:
|
||||
{
|
||||
m_compilerStack.reset(false);
|
||||
m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code);
|
||||
m_compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_REQUIRE_MESSAGE(m_compilerStack.parseAndAnalyze(), "Parsing contract failed");
|
||||
|
||||
Json::Value generatedDocumentation;
|
||||
@ -67,6 +68,7 @@ public:
|
||||
{
|
||||
m_compilerStack.reset(false);
|
||||
m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code);
|
||||
m_compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
BOOST_CHECK(!m_compilerStack.parseAndAnalyze());
|
||||
BOOST_REQUIRE(Error::containsErrorOfType(m_compilerStack.errors(), Error::Type::DocstringParsingError));
|
||||
}
|
||||
|
@ -20,6 +20,8 @@
|
||||
|
||||
#include <test/libsolidity/AnalysisFramework.h>
|
||||
|
||||
#include <test/TestHelper.h>
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <string>
|
||||
|
Loading…
Reference in New Issue
Block a user