From 786b4b7351bc8e305ad7e68d11ca6b542f66d456 Mon Sep 17 00:00:00 2001 From: Paul Dreik Date: Sun, 5 May 2019 19:25:23 +0200 Subject: [PATCH] add assert triggering data, and unit test --- ...d-from-987478524c704c2dfb7aabbd62b58655a1f2038f | 1 + test/chrono-test.cc | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 fuzzing/crashes/chrono_duration/minimized-from-987478524c704c2dfb7aabbd62b58655a1f2038f diff --git a/fuzzing/crashes/chrono_duration/minimized-from-987478524c704c2dfb7aabbd62b58655a1f2038f b/fuzzing/crashes/chrono_duration/minimized-from-987478524c704c2dfb7aabbd62b58655a1f2038f new file mode 100644 index 000000000000..4ec1ce9e9b76 --- /dev/null +++ b/fuzzing/crashes/chrono_duration/minimized-from-987478524c704c2dfb7aabbd62b58655a1f2038f @@ -0,0 +1 @@ +jobs{:%S \ No newline at end of file diff --git a/test/chrono-test.cc b/test/chrono-test.cc index be775069cb29..a5cada192663 100644 --- a/test/chrono-test.cc +++ b/test/chrono-test.cc @@ -318,16 +318,22 @@ TEST(ChronoTest, SpecialDurations) { TEST(ChronoTest, DurationIsFloatNaN) { const std::chrono::duration d{std::nanf("1")}; - EXPECT_THROW(fmt::format("{:%I}",d),fmt::format_error); + EXPECT_THROW(fmt::format("{:%I}", d), fmt::format_error); } TEST(ChronoTest, DurationIsDoubleNaN) { const std::chrono::duration d{std::nan("1")}; - EXPECT_THROW(fmt::format("{:%I}",d),fmt::format_error); + EXPECT_THROW(fmt::format("{:%I}", d), fmt::format_error); } TEST(ChronoTest, OverflowingFloat) { - const std::chrono::duration d{std::numeric_limits::max()*0.5f}; - EXPECT_THROW(fmt::format("{:%I}",d),fmt::format_error); + const std::chrono::duration d{ + std::numeric_limits::max() * 0.5f}; + EXPECT_THROW(fmt::format("{:%I}", d), fmt::format_error); +} + +TEST(ChronoTest, OverflowingFloat2) { + const std::chrono::duration d{1.79400457e+31f}; + EXPECT_THROW(fmt::format("{:%S}", d), fmt::format_error); } #endif // FMT_STATIC_THOUSANDS_SEPARATOR