mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-25 22:54:57 +02:00
tests: Move make_tm helper function to utils file
Preparation to be able to use the function from different test files later on.
This commit is contained in:
parent
a65f2d6b41
commit
de4b58a04f
@ -57,6 +57,7 @@ add_boost_test(types
|
|||||||
|
|
||||||
set(base_test_SOURCES
|
set(base_test_SOURCES
|
||||||
icingaapplication-fixture.cpp
|
icingaapplication-fixture.cpp
|
||||||
|
utils.cpp
|
||||||
base-array.cpp
|
base-array.cpp
|
||||||
base-base64.cpp
|
base-base64.cpp
|
||||||
base-convert.cpp
|
base-convert.cpp
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "base/utility.hpp"
|
#include "base/utility.hpp"
|
||||||
#include "icinga/legacytimeperiod.hpp"
|
#include "icinga/legacytimeperiod.hpp"
|
||||||
|
#include "test/utils.hpp"
|
||||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||||
#include <boost/date_time/posix_time/ptime.hpp>
|
#include <boost/date_time/posix_time/ptime.hpp>
|
||||||
#include <boost/date_time/posix_time/posix_time_duration.hpp>
|
#include <boost/date_time/posix_time/posix_time_duration.hpp>
|
||||||
@ -471,35 +472,6 @@ BOOST_AUTO_TEST_CASE(advanced)
|
|||||||
AdvancedHelper("09:00:03-30:00:04", {{2014, 9, 24}, {9, 0, 3}}, {{2014, 9, 25}, {6, 0, 4}});
|
AdvancedHelper("09:00:03-30:00:04", {{2014, 9, 24}, {9, 0, 3}}, {{2014, 9, 25}, {6, 0, 4}});
|
||||||
}
|
}
|
||||||
|
|
||||||
tm make_tm(std::string s)
|
|
||||||
{
|
|
||||||
int dst = -1;
|
|
||||||
size_t l = strlen("YYYY-MM-DD HH:MM:SS");
|
|
||||||
if (s.size() > l) {
|
|
||||||
std::string zone = s.substr(l);
|
|
||||||
if (zone == " PST") {
|
|
||||||
dst = 0;
|
|
||||||
} else if (zone == " PDT") {
|
|
||||||
dst = 1;
|
|
||||||
} else {
|
|
||||||
// tests should only use PST/PDT (for now)
|
|
||||||
BOOST_CHECK_MESSAGE(false, "invalid or unknown time time: " << zone);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::tm t = {};
|
|
||||||
#if defined(__GNUC__) && __GNUC__ < 5
|
|
||||||
// GCC did not implement std::get_time() until version 5
|
|
||||||
strptime(s.c_str(), "%Y-%m-%d %H:%M:%S", &t);
|
|
||||||
#else /* defined(__GNUC__) && __GNUC__ < 5 */
|
|
||||||
std::istringstream stream(s);
|
|
||||||
stream >> std::get_time(&t, "%Y-%m-%d %H:%M:%S");
|
|
||||||
#endif /* defined(__GNUC__) && __GNUC__ < 5 */
|
|
||||||
t.tm_isdst = dst;
|
|
||||||
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
time_t make_time_t(const tm* t)
|
time_t make_time_t(const tm* t)
|
||||||
{
|
{
|
||||||
tm copy = *t;
|
tm copy = *t;
|
||||||
|
36
test/utils.cpp
Normal file
36
test/utils.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* Icinga 2 | (c) 2025 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
|
#include "utils.hpp"
|
||||||
|
#include <cstring>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <sstream>
|
||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
|
tm make_tm(std::string s)
|
||||||
|
{
|
||||||
|
int dst = -1;
|
||||||
|
size_t l = strlen("YYYY-MM-DD HH:MM:SS");
|
||||||
|
if (s.size() > l) {
|
||||||
|
std::string zone = s.substr(l);
|
||||||
|
if (zone == " PST") {
|
||||||
|
dst = 0;
|
||||||
|
} else if (zone == " PDT") {
|
||||||
|
dst = 1;
|
||||||
|
} else {
|
||||||
|
// tests should only use PST/PDT (for now)
|
||||||
|
BOOST_CHECK_MESSAGE(false, "invalid or unknown time time: " << zone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::tm t = {};
|
||||||
|
#if defined(__GNUC__) && __GNUC__ < 5
|
||||||
|
// GCC did not implement std::get_time() until version 5
|
||||||
|
strptime(s.c_str(), "%Y-%m-%d %H:%M:%S", &t);
|
||||||
|
#else /* defined(__GNUC__) && __GNUC__ < 5 */
|
||||||
|
std::istringstream stream(s);
|
||||||
|
stream >> std::get_time(&t, "%Y-%m-%d %H:%M:%S");
|
||||||
|
#endif /* defined(__GNUC__) && __GNUC__ < 5 */
|
||||||
|
t.tm_isdst = dst;
|
||||||
|
|
||||||
|
return t;
|
||||||
|
}
|
8
test/utils.hpp
Normal file
8
test/utils.hpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* Icinga 2 | (c) 2025 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <ctime>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
tm make_tm(std::string s);
|
Loading…
x
Reference in New Issue
Block a user