diff options
author | Lefteris Karapetsas <lefteris@refu.co> | 2015-03-18 00:35:18 +0800 |
---|---|---|
committer | Lefteris Karapetsas <lefteris@refu.co> | 2015-03-18 17:57:24 +0800 |
commit | cd9785d2ffb8bea54f205384526f3c1bec96b83b (patch) | |
tree | 20ebd1da797c5d126d9524f6c0a81d8344a0ec7b /SolidityEndToEndTest.cpp | |
parent | 8e61b06b2a426eb257a2b252cbe584d90bb440b3 (diff) | |
download | dexon-solidity-cd9785d2ffb8bea54f205384526f3c1bec96b83b.tar.gz dexon-solidity-cd9785d2ffb8bea54f205384526f3c1bec96b83b.tar.zst dexon-solidity-cd9785d2ffb8bea54f205384526f3c1bec96b83b.zip |
Explicit conversion between bytes and int of any size
- Allowing aforementioned conversion and adding tests for it
Diffstat (limited to 'SolidityEndToEndTest.cpp')
-rw-r--r-- | SolidityEndToEndTest.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/SolidityEndToEndTest.cpp b/SolidityEndToEndTest.cpp index ce7a472b..6ad84341 100644 --- a/SolidityEndToEndTest.cpp +++ b/SolidityEndToEndTest.cpp @@ -1192,6 +1192,18 @@ BOOST_AUTO_TEST_CASE(convert_fixed_bytes_to_uint_different_size) encodeArgs(u160("0x6161626361626361626361616263616263616263"))); } +BOOST_AUTO_TEST_CASE(convert_fixed_bytes_to_uint_greater_size) +{ + char const* sourceCode = R"( + contract Test { + function bytesToUint(bytes4 s) returns (uint64 h) { + return uint64(s); + } + })"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("bytesToUint(bytes4)", string("abcd")) == + encodeArgs(u256("0x61626364"))); +} BOOST_AUTO_TEST_CASE(convert_fixed_bytes_to_uint_different_min_size) { @@ -1220,6 +1232,19 @@ BOOST_AUTO_TEST_CASE(convert_uint_to_fixed_bytes_different_min_size) encodeArgs(string("a"))); } +BOOST_AUTO_TEST_CASE(convert_uint_to_fixed_bytes_greater_size) +{ + char const* sourceCode = R"( + contract Test { + function UintToBytes(uint16 h) returns (bytes8 s) { + return bytes8(h); + } + })"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("UintToBytes(uint16)", u256("0x6162")) == + encodeArgs(string("\0\0\0\0\0\0ab", 8))); +} + BOOST_AUTO_TEST_CASE(send_ether) { char const* sourceCode = "contract test {\n" |