From: Markus Frosch Date: Wed, 7 Feb 2018 12:11:10 +0000 (+0100) Subject: test-runner: Replace initialization by global fixture X-Git-Tag: v2.9.0~165^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1be285c5303234f59836def2f4cc5ce71c8d01dc;p=icinga2 test-runner: Replace initialization by global fixture This is required to even be able to build tests static for Windows. --- diff --git a/test/test-runner.cpp b/test/test-runner.cpp index ea09e8744..f950c4834 100644 --- a/test/test-runner.cpp +++ b/test/test-runner.cpp @@ -17,29 +17,30 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ +#define BOOST_TEST_MAIN + #include "icinga/icingaapplication.hpp" #include "base/application.hpp" #include using namespace icinga; -static bool init_unit_test() -{ - return true; -} - -int main(int argc, char *argv[]) +struct TestIcingaApplication { - Application::InitializeBase(); - - IcingaApplication::Ptr appInst; + TestIcingaApplication() + { + Application::InitializeBase(); - appInst = new IcingaApplication(); - static_pointer_cast(appInst)->OnConfigLoaded(); + IcingaApplication::Ptr appInst; - int rc = boost::unit_test::unit_test_main(&init_unit_test, argc, argv); + appInst = new IcingaApplication(); + static_pointer_cast(appInst)->OnConfigLoaded(); + } - appInst.reset(); + ~TestIcingaApplication() + { + IcingaApplication::GetInstance().reset(); + } +}; - Application::Exit(rc); -} +BOOST_GLOBAL_FIXTURE(TestIcingaApplication);