diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-02-15 19:09:39 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-02-15 19:09:39 +0000 |
commit | a29aa609abab633f01a19a7e7576be444a38328e (patch) | |
tree | cda48d256e928d19bdfedfda7743f59e1b2bee82 /vespalib/src/tests/util | |
parent | d2ac8338ccd6770bcc8b962fec0dcc671535fe96 (diff) |
add unit test for size literals
Diffstat (limited to 'vespalib/src/tests/util')
-rw-r--r-- | vespalib/src/tests/util/size_literals/CMakeLists.txt | 9 | ||||
-rw-r--r-- | vespalib/src/tests/util/size_literals/size_literals_test.cpp | 41 |
2 files changed, 50 insertions, 0 deletions
diff --git a/vespalib/src/tests/util/size_literals/CMakeLists.txt b/vespalib/src/tests/util/size_literals/CMakeLists.txt new file mode 100644 index 00000000000..b23b5e4f9a6 --- /dev/null +++ b/vespalib/src/tests/util/size_literals/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(vespalib_size_literals_test_app TEST + SOURCES + size_literals_test.cpp + DEPENDS + vespalib + GTest::GTest +) +vespa_add_test(NAME vespalib_size_literals_test_app COMMAND vespalib_size_literals_test_app) diff --git a/vespalib/src/tests/util/size_literals/size_literals_test.cpp b/vespalib/src/tests/util/size_literals/size_literals_test.cpp new file mode 100644 index 00000000000..86c4866442b --- /dev/null +++ b/vespalib/src/tests/util/size_literals/size_literals_test.cpp @@ -0,0 +1,41 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include <vespa/vespalib/util/size_literals.h> +#include <vespa/vespalib/gtest/gtest.h> + +template<typename T> bool is_size_t(T) { return false; } +template<> bool is_size_t<size_t>(size_t) { return true; } + +TEST(SizeLiteralsTest, simple_usage) +{ + auto v1k = 1_Ki; + auto v1m = 1_Mi; + auto v1g = 1_Gi; + auto v1t = 1_Ti; + auto v42k = 42_Ki; + auto v42m = 42_Mi; + auto v42g = 42_Gi; + auto v42t = 42_Ti; + + EXPECT_EQ(v1k, 1024ul); + EXPECT_EQ(v1m, 1024ul * 1024ul); + EXPECT_EQ(v1g, 1024ul * 1024ul * 1024ul); + EXPECT_EQ(v1t, 1024ul * 1024ul * 1024ul * 1024ul);; + + EXPECT_EQ(v42k, 42ul * 1024ul); + EXPECT_EQ(v42m, 42ul * 1024ul * 1024ul); + EXPECT_EQ(v42g, 42ul * 1024ul * 1024ul * 1024ul); + EXPECT_EQ(v42t, 42ul * 1024ul * 1024ul * 1024ul * 1024ul); + + EXPECT_TRUE(is_size_t(v1k)); + EXPECT_TRUE(is_size_t(v1g)); + EXPECT_TRUE(is_size_t(v1g)); + EXPECT_TRUE(is_size_t(v1t)); + + EXPECT_TRUE(is_size_t(v42k)); + EXPECT_TRUE(is_size_t(v42g)); + EXPECT_TRUE(is_size_t(v42g)); + EXPECT_TRUE(is_size_t(v42t)); +} + +GTEST_MAIN_RUN_ALL_TESTS() |