aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-06-13 23:10:58 +0800
committerchriseth <c@ethdev.com>2016-06-29 05:18:54 +0800
commit966709b7d7ee70cfc550923e22e17a22556609a4 (patch)
tree191798580608041aedbfc5f97c30a8a4253e3dc0 /test/libsolidity
parent603bad34f9ea24a5a202ae7844549171c10c0ea2 (diff)
downloaddexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar.gz
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar.bz2
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar.lz
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar.xz
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.tar.zst
dexon-solidity-966709b7d7ee70cfc550923e22e17a22556609a4.zip
logs
Diffstat (limited to 'test/libsolidity')
-rw-r--r--test/libsolidity/SolidityEndToEndTest.cpp12
-rw-r--r--test/libsolidity/SolidityExecutionFramework.cpp12
-rw-r--r--test/libsolidity/SolidityExecutionFramework.h9
3 files changed, 24 insertions, 9 deletions
diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp
index 46677acb..3208cedf 100644
--- a/test/libsolidity/SolidityEndToEndTest.cpp
+++ b/test/libsolidity/SolidityEndToEndTest.cpp
@@ -1553,7 +1553,7 @@ BOOST_AUTO_TEST_CASE(log0)
"}\n";
compileAndRun(sourceCode);
callContractFunction("a()");
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 0);
@@ -1568,7 +1568,7 @@ BOOST_AUTO_TEST_CASE(log1)
"}\n";
compileAndRun(sourceCode);
callContractFunction("a()");
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 1);
@@ -1584,7 +1584,7 @@ BOOST_AUTO_TEST_CASE(log2)
"}\n";
compileAndRun(sourceCode);
callContractFunction("a()");
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 2);
@@ -1601,7 +1601,7 @@ BOOST_AUTO_TEST_CASE(log3)
"}\n";
compileAndRun(sourceCode);
callContractFunction("a()");
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 3);
@@ -1618,7 +1618,7 @@ BOOST_AUTO_TEST_CASE(log4)
"}\n";
compileAndRun(sourceCode);
callContractFunction("a()");
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 4);
@@ -1634,7 +1634,7 @@ BOOST_AUTO_TEST_CASE(log_in_constructor)
" }\n"
"}\n";
compileAndRun(sourceCode);
- BOOST_CHECK_EQUAL(m_logs.size(), 1);
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
BOOST_CHECK_EQUAL(h256(m_logs[0].data), h256(u256(1)));
BOOST_CHECK_EQUAL(m_logs[0].topics.size(), 1);
diff --git a/test/libsolidity/SolidityExecutionFramework.cpp b/test/libsolidity/SolidityExecutionFramework.cpp
index 5c8aff8d..871c0eba 100644
--- a/test/libsolidity/SolidityExecutionFramework.cpp
+++ b/test/libsolidity/SolidityExecutionFramework.cpp
@@ -39,7 +39,6 @@ ExecutionFramework::ExecutionFramework():
if (g_logVerbosity != -1)
g_logVerbosity = 0;
- cout << "New Framework" << endl;
m_rpc.test_rewindToBlock(0);
}
@@ -69,9 +68,18 @@ void ExecutionFramework::sendMessage(bytes const& _data, bool _isCreation, u256
BOOST_REQUIRE(m_contractAddress);
string code = m_rpc.eth_getCode(receipt.contractAddress, "latest");
BOOST_REQUIRE(code.size() > 2);
- m_output = asBytes(code);
+ m_output = fromHex(code, WhenError::Throw);
}
m_gasUsed = u256(receipt.gasUsed);
m_logs.clear();
+ for (auto const& log: receipt.logEntries)
+ {
+ LogEntry entry;
+ entry.address = Address(log.address);
+ for (auto const& topic: log.topics)
+ entry.topics.push_back(h256(topic));
+ entry.data = fromHex(log.data, WhenError::Throw);
+ m_logs.push_back(entry);
+ }
}
diff --git a/test/libsolidity/SolidityExecutionFramework.h b/test/libsolidity/SolidityExecutionFramework.h
index 512f515f..8e266819 100644
--- a/test/libsolidity/SolidityExecutionFramework.h
+++ b/test/libsolidity/SolidityExecutionFramework.h
@@ -253,6 +253,13 @@ protected:
RPCSession& m_rpc;
+ struct LogEntry
+ {
+ Address address;
+ std::vector<h256> topics;
+ bytes data;
+ };
+
std::unique_ptr<eth::SealEngineFace> m_sealEngine;
size_t m_optimizeRuns = 200;
bool m_optimize = false;
@@ -265,7 +272,7 @@ protected:
u256 const m_gasPrice = 100 * eth::szabo;
u256 const m_gas = 100000000;
bytes m_output;
- eth::LogEntries m_logs;
+ std::vector<LogEntry> m_logs;
u256 m_gasUsed;
};