diff options
author | Gav Wood <g@ethdev.com> | 2015-04-28 18:39:03 +0800 |
---|---|---|
committer | Gav Wood <g@ethdev.com> | 2015-04-28 18:39:03 +0800 |
commit | 717f2559696380c51d39cbf0105785c85ce3f3cf (patch) | |
tree | a60d8df6b73ff84cf47fa7292f32d9326d018b95 /libsolidity | |
parent | e2c4831613f8c77ae4491e31ceea7636e5580222 (diff) | |
parent | 0e5331f62c1a5384b9cff20c5499c89c12b82c5b (diff) | |
download | dexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.tar.gz dexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.tar.zst dexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.zip |
Merge pull request #1761 from chriseth/sol_fix_deleteBytes
Fix for deleting byte array elements.
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/SolidityEndToEndTest.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libsolidity/SolidityEndToEndTest.cpp b/libsolidity/SolidityEndToEndTest.cpp index 596f710b..24e5f7b4 100644 --- a/libsolidity/SolidityEndToEndTest.cpp +++ b/libsolidity/SolidityEndToEndTest.cpp @@ -3381,6 +3381,26 @@ BOOST_AUTO_TEST_CASE(bytes_index_access) BOOST_CHECK(callContractFunction("storageWrite()") == encodeArgs(0x193)); } +BOOST_AUTO_TEST_CASE(bytes_delete_element) +{ + char const* sourceCode = R"( + contract c { + bytes data; + function test1() external returns (bool) { + data.length = 100; + for (uint i = 0; i < data.length; i++) + data[i] = byte(i); + delete data[94]; + delete data[96]; + delete data[98]; + return data[94] == 0 && data[95] == 95 && data[96] == 0 && data[97] == 97; + } + } + )"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("test1()") == encodeArgs(true)); +} + BOOST_AUTO_TEST_CASE(array_copy_calldata_storage) { char const* sourceCode = R"( |