diff options
author | chriseth <c@ethdev.com> | 2015-03-20 19:54:36 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-03-20 19:54:36 +0800 |
commit | ff06ea3aafba6292af797eb5d08d80a97d65ede7 (patch) | |
tree | f7b0f74c8462de709fd81dadb5654a8dde45c7ce /SolidityTypes.cpp | |
parent | d43bc09994be67721e55b6be490586f025172b4c (diff) | |
parent | 0816a59b7e0f0be03e790273e463ca3a65efb5bf (diff) | |
download | dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.gz dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.bz2 dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.lz dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.xz dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.zst dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.zip |
Merge pull request #1341 from chriseth/sol_packedStorage
Packed storage for arrays.
Diffstat (limited to 'SolidityTypes.cpp')
-rw-r--r-- | SolidityTypes.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/SolidityTypes.cpp b/SolidityTypes.cpp index 8defd1d8..6b630647 100644 --- a/SolidityTypes.cpp +++ b/SolidityTypes.cpp @@ -75,6 +75,17 @@ BOOST_AUTO_TEST_CASE(storage_layout_mapping) BOOST_CHECK(*members.getMemberStorageOffset("final") == make_pair(u256(3), unsigned(0))); } +BOOST_AUTO_TEST_CASE(storage_layout_arrays) +{ + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(1), 32).getStorageSize() == 1); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(1), 33).getStorageSize() == 2); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(2), 31).getStorageSize() == 2); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(7), 8).getStorageSize() == 2); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(7), 9).getStorageSize() == 3); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(31), 9).getStorageSize() == 9); + BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(32), 9).getStorageSize() == 9); +} + BOOST_AUTO_TEST_SUITE_END() } |