Using jsoncpp for exporting ABI interface from solidity

- Also changing the interface JSON test to have a shorter name
  plus to provide meaningful error message in case of failure
This commit is contained in:
Lefteris Karapetsas 2014-12-01 18:01:42 +01:00
parent 6b7bec980a
commit bbf4beab45

View File

@ -34,7 +34,7 @@ namespace test
class InterfaceChecker
{
public:
bool checkInterface(std::string const& _code, std::string const& _expectedInterfaceString)
void checkInterface(std::string const& _code, std::string const& _expectedInterfaceString)
{
m_compilerStack.parse(_code);
std::string generatedInterfaceString = m_compilerStack.getInterface();
@ -42,7 +42,9 @@ public:
m_reader.parse(generatedInterfaceString, generatedInterface);
Json::Value expectedInterface;
m_reader.parse(_expectedInterfaceString, expectedInterface);
return expectedInterface == generatedInterface;
BOOST_CHECK_MESSAGE(expectedInterface == generatedInterface,
"Expected " << _expectedInterfaceString <<
"\n but got:\n" << generatedInterfaceString);
}
private:
@ -50,7 +52,7 @@ private:
Json::Reader m_reader;
};
BOOST_FIXTURE_TEST_SUITE(SolidityCompilerJSONInterfaceOutput, InterfaceChecker)
BOOST_FIXTURE_TEST_SUITE(solidityABIJSON, InterfaceChecker)
BOOST_AUTO_TEST_CASE(basic_test)
{
@ -76,7 +78,7 @@ BOOST_AUTO_TEST_CASE(basic_test)
}
])";
BOOST_CHECK(checkInterface(sourceCode, interface));
checkInterface(sourceCode, interface);
}
BOOST_AUTO_TEST_CASE(empty_contract)
@ -86,7 +88,7 @@ BOOST_AUTO_TEST_CASE(empty_contract)
char const* interface = "[]";
BOOST_CHECK(checkInterface(sourceCode, interface));
checkInterface(sourceCode, interface);
}
BOOST_AUTO_TEST_CASE(multiple_methods)
@ -129,7 +131,7 @@ BOOST_AUTO_TEST_CASE(multiple_methods)
}
])";
BOOST_CHECK(checkInterface(sourceCode, interface));
checkInterface(sourceCode, interface);
}
BOOST_AUTO_TEST_CASE(multiple_params)
@ -160,7 +162,7 @@ BOOST_AUTO_TEST_CASE(multiple_params)
}
])";
BOOST_CHECK(checkInterface(sourceCode, interface));
checkInterface(sourceCode, interface);
}
BOOST_AUTO_TEST_CASE(multiple_methods_order)
@ -204,7 +206,7 @@ BOOST_AUTO_TEST_CASE(multiple_methods_order)
}
])";
BOOST_CHECK(checkInterface(sourceCode, interface));
checkInterface(sourceCode, interface);
}
BOOST_AUTO_TEST_SUITE_END()