mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge branch 'netFix' into rlpx
Conflicts: libp2p/Session.cpp
This commit is contained in:
commit
8e5daa7d88
@ -4691,6 +4691,53 @@ BOOST_AUTO_TEST_CASE(memory_types_initialisation)
|
||||
BOOST_CHECK(callContractFunction("nestedStat()") == encodeArgs(vector<u256>(3 * 7)));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(memory_arrays_index_access_write)
|
||||
{
|
||||
char const* sourceCode = R"(
|
||||
contract Test {
|
||||
function set(uint24[3][4] x) {
|
||||
x[2][2] = 1;
|
||||
x[3][2] = 7;
|
||||
}
|
||||
function f() returns (uint24[3][4]){
|
||||
uint24[3][4] memory data;
|
||||
set(data);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
)";
|
||||
compileAndRun(sourceCode, 0, "Test");
|
||||
|
||||
vector<u256> data(3 * 4);
|
||||
data[3 * 2 + 2] = 1;
|
||||
data[3 * 3 + 2] = 7;
|
||||
BOOST_CHECK(callContractFunction("f()") == encodeArgs(data));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(memory_arrays_dynamic_index_access_write)
|
||||
{
|
||||
char const* sourceCode = R"(
|
||||
contract Test {
|
||||
uint24[3][][4] data;
|
||||
function set(uint24[3][][4] x) internal returns (uint24[3][][4]) {
|
||||
x[1][2][2] = 1;
|
||||
x[1][3][2] = 7;
|
||||
return x;
|
||||
}
|
||||
function f() returns (uint24[3][]) {
|
||||
data[1].length = 4;
|
||||
return set(data)[1];
|
||||
}
|
||||
}
|
||||
)";
|
||||
compileAndRun(sourceCode, 0, "Test");
|
||||
|
||||
vector<u256> data(3 * 4);
|
||||
data[3 * 2 + 2] = 1;
|
||||
data[3 * 3 + 2] = 7;
|
||||
BOOST_CHECK(callContractFunction("f()") == encodeArgs(u256(0x20), u256(4), data));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user