include(BoostTestTargets)
set(base_test_SOURCES
+ icingaapplication-fixture.cpp
base-array.cpp
base-base64.cpp
base-convert.cpp
add_boost_test(base
SOURCES test-runner.cpp ${base_test_SOURCES}
LIBRARIES ${base_DEPS}
- TESTS
+ TESTS
base_array/construct
base_array/getset
base_array/resize
if(ICINGA2_WITH_LIVESTATUS)
set(livestatus_test_SOURCES
+ icingaapplication-fixture.cpp
livestatus-fixture.cpp
livestatus.cpp
${base_OBJS}
endif()
set(icinga_checkable_test_SOURCES
+ icingaapplication-fixture.cpp
icinga-checkable-fixture.cpp
icinga-checkable-flapping.cpp
${base_OBJS}
--- /dev/null
+/******************************************************************************
+* Icinga 2 *
+* Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) *
+* *
+* This program is free software; you can redistribute it and/or *
+* modify it under the terms of the GNU General Public License *
+* as published by the Free Software Foundation; either version 2 *
+* of the License, or (at your option) any later version. *
+* *
+* This program is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU General Public License for more details. *
+* *
+* You should have received a copy of the GNU General Public License *
+* along with this program; if not, write to the Free Software Foundation *
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
+******************************************************************************/
+
+#include "icingaapplication-fixture.hpp"
+
+using namespace icinga;
+
+static bool IcingaInitialized = false;
+
+IcingaApplicationFixture::IcingaApplicationFixture()
+{
+ if (!IcingaInitialized)
+ InitIcingaApplication();
+}
+
+void IcingaApplicationFixture::InitIcingaApplication()
+{
+ BOOST_TEST_MESSAGE("Initializing Application...");
+ Application::InitializeBase();
+
+ BOOST_TEST_MESSAGE("Initializing IcingaApplication...");
+ IcingaApplication::Ptr appInst = new IcingaApplication();
+ static_pointer_cast<ConfigObject>(appInst)->OnConfigLoaded();
+
+ IcingaInitialized = true;
+}
+
+IcingaApplicationFixture::~IcingaApplicationFixture()
+{
+ IcingaApplication::GetInstance().reset();
+}
+
+BOOST_GLOBAL_FIXTURE(IcingaApplicationFixture);
--- /dev/null
+/******************************************************************************
+* Icinga 2 *
+* Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) *
+* *
+* This program is free software; you can redistribute it and/or *
+* modify it under the terms of the GNU General Public License *
+* as published by the Free Software Foundation; either version 2 *
+* of the License, or (at your option) any later version. *
+* *
+* This program is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU General Public License for more details. *
+* *
+* You should have received a copy of the GNU General Public License *
+* along with this program; if not, write to the Free Software Foundation *
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
+******************************************************************************/
+
+#ifndef ICINGAAPPLICATION_FIXTURE_H
+#define ICINGAAPPLICATION_FIXTURE_H
+
+#include "icinga/icingaapplication.hpp"
+#include "base/application.hpp"
+#include <BoostTestTargetConfig.h>
+
+using namespace icinga;
+
+struct IcingaApplicationFixture
+{
+ IcingaApplicationFixture();
+
+ void InitIcingaApplication();
+
+ ~IcingaApplicationFixture();
+};
+
+#endif // ICINGAAPPLICATION_FIXTURE_H
#define BOOST_TEST_MAIN
-#include "icinga/icingaapplication.hpp"
-#include "base/application.hpp"
#include <BoostTestTargetConfig.h>
-
-using namespace icinga;
-
-struct TestIcingaApplication
-{
- TestIcingaApplication()
- {
- Application::InitializeBase();
-
- IcingaApplication::Ptr appInst;
-
- appInst = new IcingaApplication();
- static_pointer_cast<ConfigObject>(appInst)->OnConfigLoaded();
- }
-
- ~TestIcingaApplication()
- {
- IcingaApplication::GetInstance().reset();
- }
-};
-
-BOOST_GLOBAL_FIXTURE(TestIcingaApplication);