mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop
This commit is contained in:
commit
16e3fc403e
@ -495,6 +495,36 @@ BOOST_AUTO_TEST_CASE(empty_name_return_parameter)
|
|||||||
checkInterface(sourceCode, interface);
|
checkInterface(sourceCode, interface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(constructor_abi)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract test {
|
||||||
|
function test(uint param1, test param2, bool param3) {}
|
||||||
|
}
|
||||||
|
)";
|
||||||
|
|
||||||
|
char const* interface = R"([
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"name": "param1",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "param2",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "param3",
|
||||||
|
"type": "bool"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "constructor"
|
||||||
|
}
|
||||||
|
])";
|
||||||
|
checkInterface(sourceCode, interface);
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
#include <memory>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
#include <test/libsolidity/solidityExecutionFramework.h>
|
#include <test/libsolidity/solidityExecutionFramework.h>
|
||||||
@ -84,9 +85,20 @@ public:
|
|||||||
|
|
||||||
AssemblyItems getCSE(AssemblyItems const& _input)
|
AssemblyItems getCSE(AssemblyItems const& _input)
|
||||||
{
|
{
|
||||||
|
// add dummy locations to each item so that we can check that they are not deleted
|
||||||
|
AssemblyItems input = _input;
|
||||||
|
for (AssemblyItem& item: input)
|
||||||
|
item.setLocation(SourceLocation(1, 3, make_shared<string>("")));
|
||||||
|
|
||||||
eth::CommonSubexpressionEliminator cse;
|
eth::CommonSubexpressionEliminator cse;
|
||||||
BOOST_REQUIRE(cse.feedItems(_input.begin(), _input.end()) == _input.end());
|
BOOST_REQUIRE(cse.feedItems(input.begin(), input.end()) == input.end());
|
||||||
return cse.getOptimizedItems();
|
AssemblyItems output = cse.getOptimizedItems();
|
||||||
|
|
||||||
|
for (AssemblyItem const& item: output)
|
||||||
|
{
|
||||||
|
BOOST_CHECK(item == Instruction::POP || !item.getLocation().isEmpty());
|
||||||
|
}
|
||||||
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
void checkCSE(AssemblyItems const& _input, AssemblyItems const& _expectation)
|
void checkCSE(AssemblyItems const& _input, AssemblyItems const& _expectation)
|
||||||
|
Loading…
Reference in New Issue
Block a user