aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/libsolidity/ABIEncoderTests.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/libsolidity/ABIEncoderTests.cpp b/test/libsolidity/ABIEncoderTests.cpp
index 9836eb77..af51edcc 100644
--- a/test/libsolidity/ABIEncoderTests.cpp
+++ b/test/libsolidity/ABIEncoderTests.cpp
@@ -462,6 +462,28 @@ BOOST_AUTO_TEST_CASE(structs)
)
}
+BOOST_AUTO_TEST_CASE(empty_struct)
+{
+ string sourceCode = R"(
+ contract C {
+ struct S { }
+ S s;
+ event e(uint16, S, uint16);
+ function f() returns (uint, S, uint) {
+ e(7, s, 8);
+ return (7, s, 8);
+ }
+ }
+ )";
+
+ NEW_ENCODER(
+ compileAndRun(sourceCode, 0, "C");
+ bytes encoded = encodeArgs(7, 8);
+ BOOST_CHECK(callContractFunction("f()") == encoded);
+ REQUIRE_LOG_DATA(encoded);
+ )
+}
+
BOOST_AUTO_TEST_CASE(structs2)
{
string sourceCode = R"(