mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
improved the test
This commit is contained in:
parent
5ba559beaf
commit
c096c3c349
@ -857,8 +857,9 @@ u256 ArrayType::memorySize() const
|
|||||||
{
|
{
|
||||||
solAssert(!isDynamicallySized(), "");
|
solAssert(!isDynamicallySized(), "");
|
||||||
solAssert(m_location == DataLocation::Memory, "");
|
solAssert(m_location == DataLocation::Memory, "");
|
||||||
|
u256 size = m_length * m_baseType->memoryHeadSize();
|
||||||
return m_length * m_baseType->memoryHeadSize();
|
solAssert(size <= numeric_limits<unsigned>::max(), "Array size does not fit unsigned.");
|
||||||
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
TypePointer ArrayType::copyForLocation(DataLocation _location, bool _isPointer) const
|
TypePointer ArrayType::copyForLocation(DataLocation _location, bool _isPointer) const
|
||||||
|
@ -5329,19 +5329,29 @@ BOOST_AUTO_TEST_CASE(fixed_arrays_as_return_type)
|
|||||||
{
|
{
|
||||||
char const* sourceCode = R"(
|
char const* sourceCode = R"(
|
||||||
contract A {
|
contract A {
|
||||||
function f() constant returns (uint16[5] arr)
|
function f(uint16 input) constant returns (uint16[5] arr)
|
||||||
{
|
{
|
||||||
|
arr[0] = input;
|
||||||
|
arr[1] = ++input;
|
||||||
|
arr[2] = ++input;
|
||||||
|
arr[3] = ++input;
|
||||||
|
arr[4] = ++input;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
contract B {
|
contract B {
|
||||||
function f()
|
function f() returns (uint16[5] res, uint16[5] res2)
|
||||||
{
|
{
|
||||||
var a = new A();
|
var a = new A();
|
||||||
uint16[5] memory res = a.f();
|
res = a.f(2);
|
||||||
|
res2 = a.f(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
compileAndRun(sourceCode, 0, "B");
|
compileAndRun(sourceCode, 0, "B");
|
||||||
|
BOOST_CHECK(callContractFunction("f()") == encodeArgs(
|
||||||
|
u256(2), u256(3), u256(4), u256(5), u256(6), // first return argument
|
||||||
|
u256(1000), u256(1001), u256(1002), u256(1003), u256(1004)) // second return argument
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user