diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-01-21 13:03:03 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-01-22 18:41:54 -0800 |
commit | fa894d7cbc7e27a64fa7e466fa56e718079da24c (patch) | |
tree | 8ab4c23e1ed7becacb72c20d4809e4ad6cc39589 | |
parent | cef5c331fe6ab827e71aed1e4e0387983083c88e (diff) | |
download | qtlocation-mapboxgl-fa894d7cbc7e27a64fa7e466fa56e718079da24c.tar.gz |
[core] Polyfill std::chrono::abs
-rw-r--r-- | include/mbgl/util/chrono.hpp | 8 | ||||
-rw-r--r-- | test/storage/http_header_parsing.cpp | 4 |
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(); |