test-runner: Replace initialization by global fixture

This is required to even be able to build tests static
for Windows.
This commit is contained in:
Markus Frosch 2018-02-07 13:11:10 +01:00
parent 7d189b58f8
commit 1be285c530

View File

@ -17,29 +17,30 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#define BOOST_TEST_MAIN
#include "icinga/icingaapplication.hpp" #include "icinga/icingaapplication.hpp"
#include "base/application.hpp" #include "base/application.hpp"
#include <BoostTestTargetConfig.h> #include <BoostTestTargetConfig.h>
using namespace icinga; using namespace icinga;
static bool init_unit_test() struct TestIcingaApplication
{ {
return true; TestIcingaApplication()
} {
Application::InitializeBase();
int main(int argc, char *argv[]) IcingaApplication::Ptr appInst;
{
Application::InitializeBase();
IcingaApplication::Ptr appInst; appInst = new IcingaApplication();
static_pointer_cast<ConfigObject>(appInst)->OnConfigLoaded();
}
appInst = new IcingaApplication(); ~TestIcingaApplication()
static_pointer_cast<ConfigObject>(appInst)->OnConfigLoaded(); {
IcingaApplication::GetInstance().reset();
}
};
int rc = boost::unit_test::unit_test_main(&init_unit_test, argc, argv); BOOST_GLOBAL_FIXTURE(TestIcingaApplication);
appInst.reset();
Application::Exit(rc);
}