diff --git a/Changelog.md b/Changelog.md index e64a8feaa..f43897a25 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,7 @@ ### 0.4.14 (unreleased) Features: + * C API (``jsonCompiler``): Export the ``license`` method. * Inline Assembly: Show useful error message if trying to access calldata variables. * Inline Assembly: Support variable declaration without initial value (defaults to 0). * Type Checker: Disallow value transfers to contracts without a payable fallback function. diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt index a5515d811..18e83e756 100644 --- a/solc/CMakeLists.txt +++ b/solc/CMakeLists.txt @@ -18,7 +18,7 @@ else() endif() if (EMSCRIPTEN) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXPORTED_FUNCTIONS='[\"_compileJSON\",\"_version\",\"_compileJSONMulti\",\"_compileJSONCallback\",\"_compileStandard\"]' -s RESERVED_FUNCTION_POINTERS=20") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXPORTED_FUNCTIONS='[\"_compileJSON\",\"_license\",\"_version\",\"_compileJSONMulti\",\"_compileJSONCallback\",\"_compileStandard\"]' -s RESERVED_FUNCTION_POINTERS=20") add_executable(soljson jsonCompiler.cpp ${HEADERS}) eth_use(soljson REQUIRED Solidity::solidity) else() diff --git a/test/libsolidity/JSONCompiler.cpp b/test/libsolidity/JSONCompiler.cpp index aa690f0bb..a6a7bc5bb 100644 --- a/test/libsolidity/JSONCompiler.cpp +++ b/test/libsolidity/JSONCompiler.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "../Metadata.h" #include "../TestHelper.h" @@ -32,6 +33,8 @@ using namespace std; extern "C" { +extern char const* version(); +extern char const* license(); extern char const* compileJSONMulti(char const* _input, bool _optimize); } @@ -57,6 +60,18 @@ Json::Value compile(string const& _input) BOOST_AUTO_TEST_SUITE(JSONCompiler) +BOOST_AUTO_TEST_CASE(read_version) +{ + string output(version()); + BOOST_CHECK(output.find(VersionString) == 0); +} + +BOOST_AUTO_TEST_CASE(read_license) +{ + string output(license()); + BOOST_CHECK(output.find("GNU GENERAL PUBLIC LICENSE") != string::npos); +} + BOOST_AUTO_TEST_CASE(basic_compilation) { char const* input = R"(