@@ -4440,23 +4440,29 @@ BOOST_AUTO_TEST_CASE(generic_delegatecall)
44404440 }
44414441 }
44424442 )**" ;
4443- compileAndRun (sourceCode, 0 , " Receiver" );
4444- u160 const c_receiverAddress = m_contractAddress;
4445- compileAndRun (sourceCode, 50 , " Sender" );
4446- u160 const c_senderAddress = m_contractAddress;
4447- BOOST_CHECK (m_sender != c_senderAddress); // just for sanity
4448- ABI_CHECK (callContractFunctionWithValue (" doSend(address)" , 11 , c_receiverAddress), encodeArgs ());
4449- ABI_CHECK (callContractFunction (" received()" ), encodeArgs (u256 (23 )));
4450- ABI_CHECK (callContractFunction (" sender()" ), encodeArgs (u160 (m_sender)));
4451- ABI_CHECK (callContractFunction (" value()" ), encodeArgs (u256 (11 )));
4452- m_contractAddress = c_receiverAddress;
4453- ABI_CHECK (callContractFunction (" received()" ), encodeArgs (u256 (0 )));
4454- ABI_CHECK (callContractFunction (" sender()" ), encodeArgs (u256 (0 )));
4455- ABI_CHECK (callContractFunction (" value()" ), encodeArgs (u256 (0 )));
4456- BOOST_CHECK (storageEmpty (c_receiverAddress));
4457- BOOST_CHECK (!storageEmpty (c_senderAddress));
4458- BOOST_CHECK_EQUAL (balanceAt (c_receiverAddress), 0 );
4459- BOOST_CHECK_EQUAL (balanceAt (c_senderAddress), 50 + 11 );
4443+
4444+ for (auto v2: {false , true })
4445+ {
4446+ string source = (v2 ? " pragma experimental ABIEncoderV2;\n " : " " ) + string (sourceCode);
4447+
4448+ compileAndRun (source, 0 , " Receiver" );
4449+ u160 const c_receiverAddress = m_contractAddress;
4450+ compileAndRun (source, 50 , " Sender" );
4451+ u160 const c_senderAddress = m_contractAddress;
4452+ BOOST_CHECK (m_sender != c_senderAddress); // just for sanity
4453+ ABI_CHECK (callContractFunctionWithValue (" doSend(address)" , 11 , c_receiverAddress), encodeArgs ());
4454+ ABI_CHECK (callContractFunction (" received()" ), encodeArgs (u256 (23 )));
4455+ ABI_CHECK (callContractFunction (" sender()" ), encodeArgs (u160 (m_sender)));
4456+ ABI_CHECK (callContractFunction (" value()" ), encodeArgs (u256 (11 )));
4457+ m_contractAddress = c_receiverAddress;
4458+ ABI_CHECK (callContractFunction (" received()" ), encodeArgs (u256 (0 )));
4459+ ABI_CHECK (callContractFunction (" sender()" ), encodeArgs (u256 (0 )));
4460+ ABI_CHECK (callContractFunction (" value()" ), encodeArgs (u256 (0 )));
4461+ BOOST_CHECK (storageEmpty (c_receiverAddress));
4462+ BOOST_CHECK (!storageEmpty (c_senderAddress));
4463+ BOOST_CHECK_EQUAL (balanceAt (c_receiverAddress), 0 );
4464+ BOOST_CHECK_EQUAL (balanceAt (c_senderAddress), 50 + 11 );
4465+ }
44604466}
44614467
44624468BOOST_AUTO_TEST_CASE (generic_staticcall)
0 commit comments