aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-08-16 02:13:05 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-08-24 20:46:18 +0800
commite9a9a07d94d35fd9b84b16b7bd4bf8ab0b396d22 (patch)
treed48855e64eaf52aeead353677752f3e17fd0ebe7 /test/libsolidity
parent5668377c721c48f03518a02d0b3e45b5b61a52f6 (diff)
downloaddexon-solidity-e9a9a07d94d35fd9b84b16b7bd4bf8ab0b396d22.tar.gz
dexon-solidity-e9a9a07d94d35fd9b84b16b7bd4bf8ab0b396d22.tar.zst
dexon-solidity-e9a9a07d94d35fd9b84b16b7bd4bf8ab0b396d22.zip
Add ABI test for pure function
Diffstat (limited to 'test/libsolidity')
-rw-r--r--test/libsolidity/SolidityABIJSON.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityABIJSON.cpp b/test/libsolidity/SolidityABIJSON.cpp
index 12fb1f9c..dd51d926 100644
--- a/test/libsolidity/SolidityABIJSON.cpp
+++ b/test/libsolidity/SolidityABIJSON.cpp
@@ -361,6 +361,61 @@ BOOST_AUTO_TEST_CASE(constant_function)
checkInterface(sourceCode, interface);
}
+BOOST_AUTO_TEST_CASE(pure_function)
+{
+ char const* sourceCode = R"(
+ contract test {
+ function foo(uint a, uint b) returns(uint d) { return a + b; }
+ function boo(uint32 a) pure returns(uint b) { return a * 4; }
+ }
+ )";
+
+ char const* interface = R"([
+ {
+ "name": "foo",
+ "constant": false,
+ "payable" : false,
+ "statemutability": "nonpayable",
+ "type": "function",
+ "inputs": [
+ {
+ "name": "a",
+ "type": "uint256"
+ },
+ {
+ "name": "b",
+ "type": "uint256"
+ }
+ ],
+ "outputs": [
+ {
+ "name": "d",
+ "type": "uint256"
+ }
+ ]
+ },
+ {
+ "name": "boo",
+ "constant": true,
+ "payable" : false,
+ "statemutability": "pure",
+ "type": "function",
+ "inputs": [{
+ "name": "a",
+ "type": "uint32"
+ }],
+ "outputs": [
+ {
+ "name": "b",
+ "type": "uint256"
+ }
+ ]
+ }
+ ])";
+
+ checkInterface(sourceCode, interface);
+}
+
BOOST_AUTO_TEST_CASE(events)
{
char const* sourceCode = R"(