From 6d9bb5a75e1d7146247b01180caacdf7b0e0a50c Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Fri, 29 Dec 2023 22:04:54 +0100 Subject: [PATCH] test(util): add tests for parse_(time|size)_with_unit --- test/utils_test.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/utils_test.cpp b/test/utils_test.cpp index a81f9f04..d61823a8 100644 --- a/test/utils_test.cpp +++ b/test/utils_test.cpp @@ -26,6 +26,7 @@ #include #include +#include "dwarfs/error.h" #include "dwarfs/offset_cache.h" #include "dwarfs/util.h" @@ -286,3 +287,36 @@ TEST(utils, offset_cache_prefill) { EXPECT_EQ(test_chunks.size() - 1, prefill_ix); EXPECT_EQ(test_chunks.back() - 1, prefill_off); } + +TEST(utils, parse_time_with_unit) { + using namespace std::chrono_literals; + EXPECT_EQ(3ms, parse_time_with_unit("3ms")); + EXPECT_EQ(4s, parse_time_with_unit("4s")); + EXPECT_EQ(5s, parse_time_with_unit("5")); + EXPECT_EQ(6min, parse_time_with_unit("6m")); + EXPECT_EQ(7h, parse_time_with_unit("7h")); + EXPECT_THROW(parse_time_with_unit("8y"), dwarfs::runtime_error); + EXPECT_THROW(parse_time_with_unit("8su"), dwarfs::runtime_error); + EXPECT_THROW(parse_time_with_unit("8mss"), dwarfs::runtime_error); + EXPECT_THROW(parse_time_with_unit("ms"), dwarfs::runtime_error); +} + +TEST(utils, parse_size_with_unit) { + EXPECT_EQ(static_cast(2), parse_size_with_unit("2")); + EXPECT_EQ(static_cast(3) * 1024, parse_size_with_unit("3k")); + EXPECT_EQ(static_cast(4) * 1024 * 1024, parse_size_with_unit("4m")); + EXPECT_EQ(static_cast(5) * 1024 * 1024 * 1024, + parse_size_with_unit("5g")); + EXPECT_EQ(static_cast(6) * 1024 * 1024 * 1024 * 1024, + parse_size_with_unit("6t")); + EXPECT_EQ(static_cast(1001) * 1024, parse_size_with_unit("1001K")); + EXPECT_EQ(static_cast(1002) * 1024 * 1024, + parse_size_with_unit("1002M")); + EXPECT_EQ(static_cast(1003) * 1024 * 1024 * 1024, + parse_size_with_unit("1003G")); + EXPECT_EQ(static_cast(1004) * 1024 * 1024 * 1024 * 1024, + parse_size_with_unit("1004T")); + EXPECT_THROW(parse_size_with_unit("7y"), dwarfs::runtime_error); + EXPECT_THROW(parse_size_with_unit("7tb"), dwarfs::runtime_error); + EXPECT_THROW(parse_size_with_unit("asd"), dwarfs::runtime_error); +}