diff --git a/test/TestUtils.cpp b/test/TestUtils.cpp index 71eeadb3a..6222955d5 100644 --- a/test/TestUtils.cpp +++ b/test/TestUtils.cpp @@ -19,8 +19,6 @@ * @date 2015 */ -#include -#include #include #include #include @@ -28,10 +26,6 @@ #include #include "TestUtils.h" -// used methods from TestHelper: -// getTestPath -#include "TestHelper.h" - using namespace std; using namespace dev; using namespace dev::eth; @@ -73,19 +67,12 @@ std::string dev::test::getCommandLineArgument(string const& _name, bool _require return ""; } -bool LoadTestFileFixture::m_loaded = false; -Json::Value LoadTestFileFixture::m_json; - LoadTestFileFixture::LoadTestFileFixture() { - if (!m_loaded) - { - m_json = loadJsonFromFile(toTestFilePath(getCommandLineArgument("--eth_testfile"))); - m_loaded = true; - } + m_json = loadJsonFromFile(toTestFilePath(getCommandLineArgument("--eth_testfile"))); } -void ParallelFixture::enumerateThreads(std::function callback) +void ParallelFixture::enumerateThreads(std::function callback) const { size_t threadsCount = std::stoul(getCommandLineArgument("--eth_threads"), nullptr, 10); @@ -99,7 +86,7 @@ void ParallelFixture::enumerateThreads(std::function callback) }); } -void BlockChainFixture::enumerateBlockchains(std::function callback) +void BlockChainFixture::enumerateBlockchains(std::function callback) const { for (string const& name: m_json.getMemberNames()) { @@ -108,16 +95,16 @@ void BlockChainFixture::enumerateBlockchains(std::function callback) +void ClientBaseFixture::enumerateClients(std::function callback) const { - enumerateBlockchains([&callback](Json::Value const& _json, BlockChain& _bc, State _state) -> void + enumerateBlockchains([&callback](Json::Value const& _json, BlockChain const& _bc, State _state) -> void { FixedClient client(_bc, _state); callback(_json, client); }); } -void ParallelClientBaseFixture::enumerateClients(std::function callback) +void ParallelClientBaseFixture::enumerateClients(std::function callback) const { ClientBaseFixture::enumerateClients([this, &callback](Json::Value const& _json, dev::eth::ClientBase& _client) -> void { diff --git a/test/TestUtils.h b/test/TestUtils.h index fef10e982..f9817c21d 100644 --- a/test/TestUtils.h +++ b/test/TestUtils.h @@ -41,24 +41,24 @@ static SharedMutex x_boostTest; struct LoadTestFileFixture { LoadTestFileFixture(); - - static bool m_loaded; - static Json::Value m_json; + +protected: + Json::Value m_json; }; struct ParallelFixture { - void enumerateThreads(std::function callback); + void enumerateThreads(std::function callback) const; }; struct BlockChainFixture: public LoadTestFileFixture { - void enumerateBlockchains(std::function callback); + void enumerateBlockchains(std::function callback) const; }; struct ClientBaseFixture: public BlockChainFixture { - void enumerateClients(std::function callback); + void enumerateClients(std::function callback) const; }; // important BOOST TEST do have problems with thread safety!!! @@ -70,7 +70,7 @@ struct ClientBaseFixture: public BlockChainFixture // https://codecrafter.wordpress.com/2012/11/01/c-unit-test-framework-adapter-part-3/ struct ParallelClientBaseFixture: public ClientBaseFixture, public ParallelFixture { - void enumerateClients(std::function callback); + void enumerateClients(std::function callback) const; }; struct JsonRpcFixture: public ClientBaseFixture