summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mbgl/util/chrono.hpp8
-rw-r--r--test/storage/http_header_parsing.cpp4
2 files changed, 9 insertions, 3 deletions
diff --git a/include/mbgl/util/chrono.hpp b/include/mbgl/util/chrono.hpp
index dd228df977..219b827536 100644
--- a/include/mbgl/util/chrono.hpp
+++ b/include/mbgl/util/chrono.hpp
@@ -53,6 +53,14 @@ std::string iso8601(SystemTimePoint);
SystemTimePoint parseTimePoint(const char *);
+// C++17 polyfill
+template <class Rep, class Period, class = std::enable_if_t<
+ std::chrono::duration<Rep, Period>::min() < std::chrono::duration<Rep, Period>::zero()>>
+constexpr std::chrono::duration<Rep, Period> abs(std::chrono::duration<Rep, Period> d)
+{
+ return d >= d.zero() ? d : -d;
+}
+
} // namespace util
} // namespace mbgl
diff --git a/test/storage/http_header_parsing.cpp b/test/storage/http_header_parsing.cpp
index 827aa70abc..521fa239e6 100644
--- a/test/storage/http_header_parsing.cpp
+++ b/test/storage/http_header_parsing.cpp
@@ -39,15 +39,13 @@ TEST_F(Storage, HTTPCacheControlParsing) {
util::RunLoop loop;
OnlineFileSource fs(nullptr);
- const Seconds now = toSeconds(SystemClock::now());
-
std::unique_ptr<FileRequest> req2 = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/test?cachecontrol=max-age=120" },
[&](Response res) {
req2.reset();
EXPECT_EQ(nullptr, res.error);
ASSERT_TRUE(res.data.get());
EXPECT_EQ("Hello World!", *res.data);
- EXPECT_GT(2, std::abs(toSeconds(*res.expires).count() - now.count() - 120)) << "Expiration date isn't about 120 seconds in the future";
+ EXPECT_GT(Seconds(2), util::abs(*res.expires - SystemClock::now() - Seconds(120))) << "Expiration date isn't about 120 seconds in the future";
EXPECT_FALSE(bool(res.modified));
EXPECT_FALSE(bool(res.etag));
loop.stop();