summaryrefslogtreecommitdiff
path: root/test/test-util.cpp
blob: 585041107b27db23e1dead3b5598650d5cddd409 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#define BOOST_TEST_MODULE ingest
#include <boost/test/data/test_case.hpp>
#include <boost/test/unit_test.hpp>

#include <util.hpp>

namespace WebStat {
}

using DurationParserData = std::tuple<std::string_view, std::chrono::milliseconds>;

BOOST_TEST_DECORATOR(*boost::unit_test::timeout(1))

BOOST_DATA_TEST_CASE(durationParser,
		boost::unit_test::data::make<DurationParserData>({
				{"", std::chrono::milliseconds {0}},
				{"123ms", std::chrono::milliseconds {123}},
				{"45s", std::chrono::seconds {45}},
				{"10m", std::chrono::minutes {10}},
				{"7h", std::chrono::hours {7}},
				{"2d", std::chrono::days {2}},
				{"7w", std::chrono::weeks {7}},
				{"1w4d3h45m10s1ms",
						std::chrono::weeks {1} + std::chrono::days {4} + std::chrono::hours {3}
								+ std::chrono::minutes {45} + std::chrono::seconds {10}
								+ std::chrono::milliseconds {1}},
		}),
		input, expected)
{
	BOOST_CHECK_EQUAL(expected, (WebStat::parseDuration<std::intmax_t, std::milli>(input)));
}