diff options
author | chriseth <c@ethdev.com> | 2015-06-05 20:34:10 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-06-05 23:37:16 +0800 |
commit | 7581330e51e3e6619552e2906f790785486ed9f9 (patch) | |
tree | e60dc488e1c60c11ee8fdaa50905dbd9b9cb06a6 | |
parent | 7aff1fb942c7a9b5a5fa04e886336db737337d0d (diff) | |
download | dexon-solidity-7581330e51e3e6619552e2906f790785486ed9f9.tar.gz dexon-solidity-7581330e51e3e6619552e2906f790785486ed9f9.tar.zst dexon-solidity-7581330e51e3e6619552e2906f790785486ed9f9.zip |
Bare functions return success condition.
-rw-r--r-- | libsolidity/SolidityEndToEndTest.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libsolidity/SolidityEndToEndTest.cpp b/libsolidity/SolidityEndToEndTest.cpp index 1d0f1fc2..89ed81e2 100644 --- a/libsolidity/SolidityEndToEndTest.cpp +++ b/libsolidity/SolidityEndToEndTest.cpp @@ -4187,6 +4187,28 @@ BOOST_AUTO_TEST_CASE(positive_integers_to_signed) BOOST_CHECK(callContractFunction("q()") == encodeArgs(250)); } +BOOST_AUTO_TEST_CASE(failing_send) +{ + char const* sourceCode = R"( + contract Helper { + uint[] data; + function () { + data[9]; // trigger exception + } + } + contract Main { + function callHelper(address _a) returns (bool r, uint bal) { + r = !_a.send(5); + bal = this.balance; + } + } + )"; + compileAndRun(sourceCode, 0, "Helper"); + u160 const c_helperAddress = m_contractAddress; + compileAndRun(sourceCode, 20, "Main"); + BOOST_REQUIRE(callContractFunction("callHelper(address)", c_helperAddress) == encodeArgs(true, 20)); +} + BOOST_AUTO_TEST_SUITE_END() } |