]> granicus.if.org Git - icinga2/blobdiff - test/livestatus.cpp
Merge pull request #6602 from Icinga/fix/improve-tls-handshake-exception-logging
[icinga2] / test / livestatus.cpp
index 18043fbc3e0ceffec3938b38adcd1fa59c6baf6d..bb74ffc303812e6344be49c476d4668504d7214b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  * Icinga 2                                                                   *
- * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)    *
+ * 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                *
  ******************************************************************************/
 
 #include "livestatus/livestatusquery.hpp"
-#include "config/configcompiler.hpp"
-#include "config/configitem.hpp"
 #include "base/application.hpp"
 #include "base/stdiostream.hpp"
 #include "base/json.hpp"
-#include "base/loader.hpp"
-#include "cli/daemonutility.hpp"
-#include <boost/test/unit_test.hpp>
-#include <fstream>
+#include <BoostTestTargetConfig.h>
 
 using namespace icinga;
 
-struct GlobalConfigFixture {
-       GlobalConfigFixture()
-           : TestConfig("test-config.conf")
-       {
-               BOOST_TEST_MESSAGE("setup global config fixture");
-
-               String cfg_file_path = TestConfig;
-               String cfg_file_path_tmp = TestConfig + ".tmp";
-
-               std::ofstream cfgfp;
-               cfgfp.open(cfg_file_path_tmp.CStr(), std::ofstream::out | std::ofstream::trunc);
-               cfgfp << std::fixed;
-               cfgfp << "object CheckCommand \"dummy\" {\n";
-               cfgfp << "  execute = PluginCheck\n";
-               cfgfp << "  command = \"/bin/echo\"\n";
-               cfgfp << "}\n";
-               cfgfp << "object Host \"test-01\" {\n";
-               cfgfp << "  address = \"127.0.0.1\"\n";
-               cfgfp << "  check_command = \"dummy\"\n";
-               cfgfp << "}\n";
-               cfgfp << "object Host \"test-02\" {\n";
-               cfgfp << "  address = \"127.0.0.2\"\n";
-               cfgfp << "  check_command = \"dummy\"\n";
-               cfgfp << "}\n";
-               cfgfp << "apply Service \"livestatus\"{\n";
-               cfgfp << "  check_command = \"dummy\"\n";
-               cfgfp << "  notes = \"test livestatus\"\n";
-               cfgfp << "  assign where match(\"test-*\", host.name)\n";
-               cfgfp << "}\n";
-
-               cfgfp.close();
-#ifdef _WIN32
-               _unlink(cfg_file_path.CStr());
-#endif /* _WIN32 */
-
-               if (rename(cfg_file_path_tmp.CStr(), cfg_file_path.CStr()) < 0) {
-                       BOOST_THROW_EXCEPTION(posix_error()
-                           << boost::errinfo_api_function("rename")
-                           << boost::errinfo_errno(errno)
-                           << boost::errinfo_file_name(cfg_file_path_tmp));
-               }
-
-               BOOST_TEST_MESSAGE( "Preparing config objects...");
-
-               /* start the Icinga application and load the configuration */
-               Application::DeclareSysconfDir("etc");
-               Application::DeclareLocalStateDir("var");
-
-               ActivationScope ascope;
-
-               Loader::LoadExtensionLibrary("icinga");
-               Loader::LoadExtensionLibrary("methods"); //loaded by ITL
-
-               std::vector<std::string> configs;
-               configs.push_back(TestConfig);
-
-               std::vector<ConfigItem::Ptr> newItems;
-
-               DaemonUtility::LoadConfigFiles(configs, newItems, "icinga2.debug", "icinga2.vars");
-
-               /* ignore config errors */
-               WorkQueue upq;
-               ConfigItem::ActivateItems(upq, newItems);
-       }
-
-       ~GlobalConfigFixture()
-       {
-               BOOST_TEST_MESSAGE("cleanup global config fixture");
-
-               unlink(TestConfig.CStr());
-       }
-
-       String TestConfig;
-};
-
-BOOST_GLOBAL_FIXTURE(GlobalConfigFixture);
-
-struct LocalFixture {
-       LocalFixture() { }
-       ~LocalFixture() { }
-};
-
 String LivestatusQueryHelper(const std::vector<String>& lines)
 {
        LivestatusQuery::Ptr query = new LivestatusQuery(lines, "");
@@ -147,17 +60,17 @@ String LivestatusQueryHelper(const std::vector<String>& lines)
 
 //____________________________________________________________________________//
 
-BOOST_FIXTURE_TEST_SUITE(livestatus, LocalFixture)
+BOOST_AUTO_TEST_SUITE(livestatus)
 
 BOOST_AUTO_TEST_CASE(hosts)
 {
        BOOST_TEST_MESSAGE( "Querying Livestatus...");
 
        std::vector<String> lines;
-       lines.push_back("GET hosts");
-       lines.push_back("Columns: host_name address check_command");
-       lines.push_back("OutputFormat: json");
-       lines.push_back("\n");
+       lines.emplace_back("GET hosts");
+       lines.emplace_back("Columns: host_name address check_command");
+       lines.emplace_back("OutputFormat: json");
+       lines.emplace_back("\n");
 
        /* use our query helper */
        String output = LivestatusQueryHelper(lines);
@@ -184,10 +97,10 @@ BOOST_AUTO_TEST_CASE(services)
        BOOST_TEST_MESSAGE( "Querying Livestatus...");
 
        std::vector<String> lines;
-       lines.push_back("GET services");
-       lines.push_back("Columns: host_name service_description check_command notes");
-       lines.push_back("OutputFormat: json");
-       lines.push_back("\n");
+       lines.emplace_back("GET services");
+       lines.emplace_back("Columns: host_name service_description check_command notes");
+       lines.emplace_back("OutputFormat: json");
+       lines.emplace_back("\n");
 
        /* use our query helper */
        String output = LivestatusQueryHelper(lines);