icinga2/test/utils.hpp
Julian Brost ed202ed745 tests: move SpawnSynchronizedCoroutine() to utils.cpp
This allows reusing the helper also from other test files.
2026-06-23 15:38:19 +02:00

41 lines
1 KiB
C++

// SPDX-FileCopyrightText: 2025 Icinga GmbH <https://icinga.com>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "icinga/host.hpp"
#include <ctime>
#include <functional>
#include <future>
#include <string>
#include <boost/asio/spawn.hpp>
tm make_tm(std::string s);
struct GlobalTimezoneFixture
{
/**
* Timezone used for testing DST changes.
*
* DST changes in America/Los_Angeles:
* 2021-03-14: 01:59:59 PST (UTC-8) -> 03:00:00 PDT (UTC-7)
* 2021-11-07: 01:59:59 PDT (UTC-7) -> 01:00:00 PST (UTC-8)
*/
static const char *TestTimezoneWithDST;
GlobalTimezoneFixture(const char *fixed_tz = "");
~GlobalTimezoneFixture();
char *tz;
};
std::string GetRandomString(std::string prefix, std::size_t length);
void ReceiveCheckResults(
const icinga::Checkable::Ptr& host,
std::size_t num,
icinga::ServiceState state,
const std::function<void(const icinga::CheckResult::Ptr&)>& fn = {}
);
std::future<void> SpawnSynchronizedCoroutine(std::function<void(boost::asio::yield_context)> fn);