summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-12-13 11:52:42 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-12-17 15:20:00 +0000
commit6826840cd4c23c53b418312431b8ac577702a496 (patch)
tree3f581a0a7e003e690d36b27a6c0a9396ec65d7ad
parentd3d188d58559e1a0afa05a14476561048f9a9cca (diff)
downloadphosphor-inventory-manager-6826840cd4c23c53b418312431b8ac577702a496.tar.gz
phosphor-inventory-manager-6826840cd4c23c53b418312431b8ac577702a496.zip
utils: Add unit tests
Ensure utils.hpp can build on its own, and add some unit tests. Change-Id: Ia147b699105ff4497d9226630ef19e57d91de3c3 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
-rw-r--r--test/Makefile.am6
-rw-r--r--test/utils_test.cpp97
2 files changed, 103 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index ce83bac..507e7a5 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -15,6 +15,12 @@ types_test_LDADD = ${GTEST_LIBS} ${GMOCK_LIBS}
types_test_LDFLAGS = ${OESDK_TESTCASE_FLAGS}
check_PROGRAMS += types-test
+utils_test_SOURCES = utils_test.cpp
+utils_test_CFLAGS = ${GTEST_CFLAGS} ${GMOCK_CFLAGS}
+utils_test_LDADD = ${GTEST_LIBS} ${GMOCK_LIBS}
+utils_test_LDFLAGS = ${OESDK_TESTCASE_FLAGS}
+check_PROGRAMS += utils-test
+
extra_yamldir=$(top_srcdir)/example/extra_interfaces.d
phosphor_inventory_test_SOURCES = test.cpp
diff --git a/test/utils_test.cpp b/test/utils_test.cpp
new file mode 100644
index 0000000..c1f15f7
--- /dev/null
+++ b/test/utils_test.cpp
@@ -0,0 +1,97 @@
+#include "../utils.hpp"
+
+#include <gtest/gtest.h>
+
+using namespace sdbusplus::message::variant_ns;
+using namespace phosphor::inventory::manager;
+using namespace std::string_literals;
+
+TEST(UtilsTest, TestVariantVisitor)
+{
+ variant<int, std::string> ib1(100);
+ auto converted1 = convertVariant<variant<int>>(ib1);
+ EXPECT_TRUE(get<int>(converted1) == 100);
+
+ variant<int, std::string> ib2(100);
+ EXPECT_THROW(convertVariant<variant<std::string>>(ib2), std::runtime_error);
+}
+
+TEST(UtilsTest, TestCompareFirst)
+{
+ auto c = compareFirst(std::less<int>());
+ auto p1 = std::make_pair(1, 2);
+ auto p2 = std::make_pair(3, 4);
+
+ EXPECT_TRUE(c(p1, p2));
+ EXPECT_TRUE(c(1, p2));
+ EXPECT_TRUE(c(p1, 2));
+ EXPECT_FALSE(c(p2, p1));
+ EXPECT_FALSE(c(p2, 1));
+ EXPECT_FALSE(c(2, p1));
+
+ auto p3 = std::make_pair(1, 100);
+ auto p4 = std::make_pair(1, 200);
+
+ EXPECT_FALSE(c(p3, p4));
+ EXPECT_FALSE(c(1, p4));
+ EXPECT_TRUE(c(p3, 2));
+ EXPECT_FALSE(c(p4, p3));
+ EXPECT_FALSE(c(p4, 1));
+ EXPECT_FALSE(c(2, p3));
+}
+
+TEST(UtilsTest, TestRelPathComparePrefix)
+{
+ auto s1 = "prefixfoo"s;
+ auto s2 = "prefixbar"s;
+ RelPathCompare comp("prefix");
+
+ EXPECT_TRUE(comp(s2, s1));
+ EXPECT_FALSE(comp(s1, s2));
+
+ auto s3 = "bar"s;
+ auto s4 = "foo"s;
+
+ EXPECT_FALSE(comp(s4, s3));
+ EXPECT_TRUE(comp(s3, s4));
+
+ auto s5 = "prefixbar"s;
+ auto s6 = "foo"s;
+
+ EXPECT_FALSE(comp(s6, s5));
+ EXPECT_TRUE(comp(s5, s6));
+
+ auto s7 = "bar"s;
+ auto s8 = "prefixfoo"s;
+
+ EXPECT_FALSE(comp(s8, s7));
+ EXPECT_TRUE(comp(s7, s8));
+}
+
+TEST(UtilsTest, TestRelPathCompareNoPrefix)
+{
+ auto s1 = "prefixfoo"s;
+ auto s2 = "prefixbar"s;
+ RelPathCompare comp("");
+
+ EXPECT_TRUE(comp(s2, s1));
+ EXPECT_FALSE(comp(s1, s2));
+
+ auto s3 = "bar"s;
+ auto s4 = "foo"s;
+
+ EXPECT_FALSE(comp(s4, s3));
+ EXPECT_TRUE(comp(s3, s4));
+
+ auto s5 = "prefixbar"s;
+ auto s6 = "foo"s;
+
+ EXPECT_TRUE(comp(s6, s5));
+ EXPECT_FALSE(comp(s5, s6));
+
+ auto s7 = "bar"s;
+ auto s8 = "prefixfoo"s;
+
+ EXPECT_FALSE(comp(s8, s7));
+ EXPECT_TRUE(comp(s7, s8));
+}
OpenPOWER on IntegriCloud