diff options
Diffstat (limited to 'test/libsolidity')
-rw-r--r-- | test/libsolidity/ASTJSONTest.cpp | 1 | ||||
-rw-r--r-- | test/libsolidity/LibSolc.cpp | 4 | ||||
-rw-r--r-- | test/libsolidity/SolidityEndToEndTest.cpp | 25 | ||||
-rw-r--r-- | test/libsolidity/SyntaxTest.cpp | 1 |
4 files changed, 27 insertions, 4 deletions
diff --git a/test/libsolidity/ASTJSONTest.cpp b/test/libsolidity/ASTJSONTest.cpp index 05839c1f..be482d99 100644 --- a/test/libsolidity/ASTJSONTest.cpp +++ b/test/libsolidity/ASTJSONTest.cpp @@ -22,7 +22,6 @@ #include <boost/algorithm/string.hpp> #include <boost/algorithm/string/predicate.hpp> #include <boost/throw_exception.hpp> -#include <cctype> #include <fstream> #include <memory> #include <stdexcept> diff --git a/test/libsolidity/LibSolc.cpp b/test/libsolidity/LibSolc.cpp index 61e5ebba..94fed7e8 100644 --- a/test/libsolidity/LibSolc.cpp +++ b/test/libsolidity/LibSolc.cpp @@ -52,7 +52,7 @@ Json::Value compileMulti(string const& _input, bool _callback) { string output( _callback ? - compileJSONCallback(_input.c_str(), dev::test::Options::get().optimize, NULL) : + compileJSONCallback(_input.c_str(), dev::test::Options::get().optimize, nullptr) : compileJSONMulti(_input.c_str(), dev::test::Options::get().optimize) ); Json::Value ret; @@ -62,7 +62,7 @@ Json::Value compileMulti(string const& _input, bool _callback) Json::Value compile(string const& _input) { - string output(compileStandard(_input.c_str(), NULL)); + string output(compileStandard(_input.c_str(), nullptr)); Json::Value ret; BOOST_REQUIRE(jsonParseStrict(output, ret)); return ret; diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp index f65c8b27..7a496e64 100644 --- a/test/libsolidity/SolidityEndToEndTest.cpp +++ b/test/libsolidity/SolidityEndToEndTest.cpp @@ -4519,6 +4519,31 @@ BOOST_AUTO_TEST_CASE(library_call_protection) ABI_CHECK(callContractFunction("pu()"), encodeArgs(2)); } + +BOOST_AUTO_TEST_CASE(library_staticcall_delegatecall) +{ + char const* sourceCode = R"( + library Lib { + function x() public view returns (uint) { + return 1; + } + } + contract Test { + uint t; + function f() public returns (uint) { + t = 2; + return this.g(); + } + function g() public view returns (uint) { + return Lib.x(); + } + } + )"; + compileAndRun(sourceCode, 0, "Lib"); + compileAndRun(sourceCode, 0, "Test", bytes(), map<string, Address>{{"Lib", m_contractAddress}}); + ABI_CHECK(callContractFunction("f()"), encodeArgs(1)); +} + BOOST_AUTO_TEST_CASE(store_bytes) { // this test just checks that the copy loop does not mess up the stack diff --git a/test/libsolidity/SyntaxTest.cpp b/test/libsolidity/SyntaxTest.cpp index 1de42300..91d1681f 100644 --- a/test/libsolidity/SyntaxTest.cpp +++ b/test/libsolidity/SyntaxTest.cpp @@ -20,7 +20,6 @@ #include <boost/algorithm/string.hpp> #include <boost/algorithm/string/predicate.hpp> #include <boost/throw_exception.hpp> -#include <cctype> #include <fstream> #include <memory> #include <stdexcept> |