summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/util
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-02-15 19:09:39 +0000
committerArne Juul <arnej@verizonmedia.com>2021-02-15 19:09:39 +0000
commita29aa609abab633f01a19a7e7576be444a38328e (patch)
treecda48d256e928d19bdfedfda7743f59e1b2bee82 /vespalib/src/tests/util
parentd2ac8338ccd6770bcc8b962fec0dcc671535fe96 (diff)
add unit test for size literals
Diffstat (limited to 'vespalib/src/tests/util')
-rw-r--r--vespalib/src/tests/util/size_literals/CMakeLists.txt9
-rw-r--r--vespalib/src/tests/util/size_literals/size_literals_test.cpp41
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()