diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2018-06-18 23:06:23 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2018-06-20 01:31:07 +0800 |
commit | a17059573fe2ffce115b5368e798a87ce07dc1cd (patch) | |
tree | f4ed43e75f6e1af91159811f570f26b4b6ead818 /test/libsolidity | |
parent | 4189b6b03dfcbcccacb17e4eeed4eaf6cd653002 (diff) | |
download | dexon-solidity-a17059573fe2ffce115b5368e798a87ce07dc1cd.tar.gz dexon-solidity-a17059573fe2ffce115b5368e798a87ce07dc1cd.tar.zst dexon-solidity-a17059573fe2ffce115b5368e798a87ce07dc1cd.zip |
Disallow raw callcode (was deprecated in 0.4.12)
Diffstat (limited to 'test/libsolidity')
6 files changed, 4 insertions, 51 deletions
diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp index c80aa8ba..2a24a1e3 100644 --- a/test/libsolidity/SolidityEndToEndTest.cpp +++ b/test/libsolidity/SolidityEndToEndTest.cpp @@ -3745,38 +3745,6 @@ BOOST_AUTO_TEST_CASE(generic_call) BOOST_CHECK_EQUAL(balanceAt(m_contractAddress), 50 - 2); } -BOOST_AUTO_TEST_CASE(generic_callcode) -{ - char const* sourceCode = R"**( - contract Receiver { - uint public received; - function receive(uint256 x) payable { received = x; } - } - contract Sender { - uint public received; - function Sender() payable { } - function doSend(address rec) returns (uint d) - { - bytes4 signature = bytes4(bytes32(keccak256("receive(uint256)"))); - rec.callcode.value(2)(signature, 23); - return Receiver(rec).received(); - } - } - )**"; - compileAndRun(sourceCode, 0, "Receiver"); - u160 const c_receiverAddress = m_contractAddress; - compileAndRun(sourceCode, 50, "Sender"); - u160 const c_senderAddress = m_contractAddress; - ABI_CHECK(callContractFunction("doSend(address)", c_receiverAddress), encodeArgs(0)); - ABI_CHECK(callContractFunction("received()"), encodeArgs(23)); - m_contractAddress = c_receiverAddress; - ABI_CHECK(callContractFunction("received()"), encodeArgs(0)); - BOOST_CHECK(storageEmpty(c_receiverAddress)); - BOOST_CHECK(!storageEmpty(c_senderAddress)); - BOOST_CHECK_EQUAL(balanceAt(c_receiverAddress), 0); - BOOST_CHECK_EQUAL(balanceAt(c_senderAddress), 50); -} - BOOST_AUTO_TEST_CASE(generic_delegatecall) { char const* sourceCode = R"**( @@ -11558,9 +11526,6 @@ BOOST_AUTO_TEST_CASE(bare_call_invalid_address) function f() external returns (bool) { return address(0x4242).call(); } - function g() external returns (bool) { - return address(0x4242).callcode(); - } function h() external returns (bool) { return address(0x4242).delegatecall(); } @@ -11568,7 +11533,6 @@ BOOST_AUTO_TEST_CASE(bare_call_invalid_address) )"; compileAndRun(sourceCode, 0, "C"); ABI_CHECK(callContractFunction("f()"), encodeArgs(u256(1))); - ABI_CHECK(callContractFunction("g()"), encodeArgs(u256(1))); ABI_CHECK(callContractFunction("h()"), encodeArgs(u256(1))); } diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/349_unused_return_value_callcode.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/349_unused_return_value_callcode.sol deleted file mode 100644 index a5bda4f6..00000000 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/349_unused_return_value_callcode.sol +++ /dev/null @@ -1,8 +0,0 @@ -contract test { - function f() public { - address(0x12).callcode("abc"); - } -} -// ---- -// Warning: (50-79): Return value of low-level calls not used. -// Warning: (50-72): "callcode" has been deprecated in favour of "delegatecall". diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/351_callcode_deprecated.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/351_callcode_deprecated.sol index 422de58c..554f2e11 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/351_callcode_deprecated.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/351_callcode_deprecated.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// Warning: (55-77): "callcode" has been deprecated in favour of "delegatecall". +// TypeError: (55-77): "callcode" has been deprecated in favour of "delegatecall". diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol index ee4acdcc..d0c3769c 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol @@ -3,13 +3,10 @@ contract C { address addr; uint balance = addr.balance; bool callRet = addr.call(); - bool callcodeRet = addr.callcode(); bool delegatecallRet = addr.delegatecall(); bool sendRet = addr.send(1); addr.transfer(1); - callRet; callcodeRet; delegatecallRet; sendRet; + balance; callRet; delegatecallRet; sendRet; } } // ---- -// Warning: (161-174): "callcode" has been deprecated in favour of "delegatecall". -// Warning: (69-81): Unused local variable. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/545_warn_about_address_members_on_contract_callcode.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/545_warn_about_address_members_on_contract_callcode.sol index 04747e7f..43ee4d88 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/545_warn_about_address_members_on_contract_callcode.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/545_warn_about_address_members_on_contract_callcode.sol @@ -5,4 +5,4 @@ contract C { } // ---- // Warning: (52-65): Using contract member "callcode" inherited from the address type is deprecated. Convert the contract to "address" type to access the member, for example use "address(contract).callcode" instead. -// Warning: (52-65): "callcode" has been deprecated in favour of "delegatecall". +// TypeError: (52-65): "callcode" has been deprecated in favour of "delegatecall". diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/551_warn_about_address_members_on_non_this_contract_callcode.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/551_warn_about_address_members_on_non_this_contract_callcode.sol index 9ab6fb0c..3c1e0280 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/551_warn_about_address_members_on_non_this_contract_callcode.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/551_warn_about_address_members_on_non_this_contract_callcode.sol @@ -6,4 +6,4 @@ contract C { } // ---- // Warning: (65-75): Using contract member "callcode" inherited from the address type is deprecated. Convert the contract to "address" type to access the member, for example use "address(contract).callcode" instead. -// Warning: (65-75): "callcode" has been deprecated in favour of "delegatecall". +// TypeError: (65-75): "callcode" has been deprecated in favour of "delegatecall". |