aboutsummaryrefslogtreecommitdiffstats
path: root/test/liblll/EndToEndTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/liblll/EndToEndTest.cpp')
-rw-r--r--test/liblll/EndToEndTest.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/liblll/EndToEndTest.cpp b/test/liblll/EndToEndTest.cpp
index fd8099f2..60aef7b0 100644
--- a/test/liblll/EndToEndTest.cpp
+++ b/test/liblll/EndToEndTest.cpp
@@ -50,6 +50,7 @@ BOOST_AUTO_TEST_CASE(bare_panic)
{
char const* sourceCode = "(panic)";
compileAndRunWithoutCheck(sourceCode);
+ BOOST_REQUIRE(!m_transactionSuccessful);
BOOST_REQUIRE(m_output.empty());
}
@@ -57,6 +58,7 @@ BOOST_AUTO_TEST_CASE(panic)
{
char const* sourceCode = "{ (panic) }";
compileAndRunWithoutCheck(sourceCode);
+ BOOST_REQUIRE(!m_transactionSuccessful);
BOOST_REQUIRE(m_output.empty());
}
@@ -69,6 +71,7 @@ BOOST_AUTO_TEST_CASE(macro_zeroarg)
(zeroarg)))
)";
compileAndRun(sourceCode);
+ BOOST_CHECK(m_transactionSuccessful);
BOOST_CHECK(callFallback() == encodeArgs(u256(0x1234)));
}
@@ -983,6 +986,20 @@ BOOST_AUTO_TEST_CASE(shift_right)
BOOST_CHECK(callFallback() == encodeArgs(u256(256)));
}
+BOOST_AUTO_TEST_CASE(sub_assemblies)
+{
+ char const* sourceCode = R"(
+ (returnlll
+ (return (create 0 (returnlll (sstore 1 1)))))
+ )";
+ compileAndRun(sourceCode);
+ bytes ret = callFallback();
+ BOOST_REQUIRE(ret.size() == 32);
+ u256 rVal = u256(toHex(ret, 2, HexPrefix::Add));
+ BOOST_CHECK(rVal != 0);
+ BOOST_CHECK(rVal < u256("0x10000000000000000000000000000000000000000"));
+}
+
BOOST_AUTO_TEST_SUITE_END()
}