From 1bc0320811ef2b213bda0629b702bffae5e2f925 Mon Sep 17 00:00:00 2001 From: chriseth Date: Sat, 6 Aug 2016 11:37:52 +0200 Subject: Cleanup of test suite init. --- test/TestHelper.cpp | 34 ++++++------- test/TestHelper.h | 22 ++++----- test/boostTest.cpp | 66 ++++--------------------- test/libsolidity/SolidityExecutionFramework.cpp | 3 -- 4 files changed, 33 insertions(+), 92 deletions(-) diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index a704ab17..bfc5b54c 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -24,28 +24,22 @@ using namespace std; using namespace dev::test; -Options::Options(int argc, char** argv) +Options const& Options::get() { - tArgc = 0; - tArgv = new char*[argc]; - for (auto i = 0; i < argc; i++) - { - string arg = argv[i]; - if (arg == "--ipc" && i + 1 < argc) + static Options instance; + return instance; +} + +Options::Options() +{ + auto const& suite = boost::unit_test::framework::master_test_suite(); + for (auto i = 0; i < suite.argc; i++) + if (string(suite.argv[i]) == "--ipc" && i + 1 < suite.argc) { - ipcPath = argv[i + 1]; + ipcPath = suite.argv[i + 1]; i++; } - else - { - tArgv[i] = argv[i]; - tArgc++; - } - } + if (ipcPath.empty()) + if (auto path = getenv("ETH_TEST_IPC")) + ipcPath = path; } - -Options const& Options::get(int argc, char** argv) -{ - static Options instance(argc, argv); - return instance; -} \ No newline at end of file diff --git a/test/TestHelper.h b/test/TestHelper.h index 49931614..beb081cd 100644 --- a/test/TestHelper.h +++ b/test/TestHelper.h @@ -103,19 +103,15 @@ namespace test while (0) - class Options - { - public: - std::string ipcPath; - int tArgc; - char **tArgv; - /// Get reference to options - /// The first time used, options are parsed with argc, argv - static Options const& get(int argc = 0, char** argv = 0); +struct Options: boost::noncopyable +{ + std::string ipcPath; + + Options const& get(); + +private: + Options(); +}; - private: - Options(int argc, char** argv = 0); - Options(Options const&) = delete; - }; } } diff --git a/test/boostTest.cpp b/test/boostTest.cpp index 7ed2a6cd..4ddae0b7 100644 --- a/test/boostTest.cpp +++ b/test/boostTest.cpp @@ -26,59 +26,13 @@ #pragma GCC diagnostic ignored "-Wunused-parameter" - #define BOOST_TEST_NO_MAIN - #if defined(_MSC_VER) - #pragma warning(push) - #pragma warning(disable:4535) // calling _set_se_translator requires /EHa - #endif - #include - #if defined(_MSC_VER) - #pragma warning(pop) - #endif - - #pragma GCC diagnostic pop - - #include - #include - #include "TestHelper.h" - - using namespace boost::unit_test; - - std::vector parameters; - static std::ostringstream strCout; - std::streambuf* oldCoutStreamBuf; - std::streambuf* oldCerrStreamBuf; - - //Custom Boost Initialization - test_suite* fake_init_func(int argc, char* argv[]) - { - //Required for boost. -nowarning - (void)argc; - (void)argv; - return 0; - } - - //Custom Boost Unit Test Main - int main(int argc, char* argv[]) - { - //Initialize options before boost reads it - dev::test::Options const& opt = dev::test::Options::get(argc, argv); - return unit_test_main(fake_init_func, opt.tArgc, opt.tArgv); - } - - /* -#else - #if defined(_MSC_VER) - #pragma warning(push) - #pragma warning(disable:4535) // calling _set_se_translator requires /EHa - #endif - #include - #if defined(_MSC_VER) - #pragma warning(pop) - #endif - - #pragma GCC diagnostic pop - - #include - using namespace boost::unit_test; -#endif*/ \ No newline at end of file +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4535) // calling _set_se_translator requires /EHa +#endif +#include +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +#pragma GCC diagnostic pop diff --git a/test/libsolidity/SolidityExecutionFramework.cpp b/test/libsolidity/SolidityExecutionFramework.cpp index 921fd056..d0ee13c6 100644 --- a/test/libsolidity/SolidityExecutionFramework.cpp +++ b/test/libsolidity/SolidityExecutionFramework.cpp @@ -38,9 +38,6 @@ namespace // anonymous string getIPCSocketPath() { string ipcPath = dev::test::Options::get().ipcPath; - if (ipcPath.empty()) - if (auto path = getenv("ETH_TEST_IPC")) - ipcPath = path; if (ipcPath.empty()) BOOST_FAIL("ERROR: ipcPath not set! (use --ipc or the environment variable ETH_TEST_IPC)"); -- cgit v1.2.3