Add hidl_vec iterator and hidl_string ==
Add bidirectional iterator for hidl_vec
Add operator== and operator!= for hidl_string to hidl_string
comparision.
Test: Added unit tests to libhidl_test
Change-Id: I908bc71fae4016f335e2342f28b351f63f22fa66
diff --git a/test_main.cpp b/test_main.cpp
index f964ce5..276b3a4 100644
--- a/test_main.cpp
+++ b/test_main.cpp
@@ -67,12 +67,36 @@
EXPECT_STREQ(s, "myDString");
s.clear(); // should not affect myCString
EXPECT_STREQ(myCString, "myDString");
+
// casts
s = "great";
std::string myString = s;
const char *anotherCString = s;
EXPECT_EQ(myString, "great");
EXPECT_STREQ(anotherCString, "great");
+
+ // Comparisons
+ const char * cstr1 = "abc";
+ std::string string1(cstr1);
+ hidl_string hs1(cstr1);
+ const char * cstrE = "abc";
+ std::string stringE(cstrE);
+ hidl_string hsE(cstrE);
+ const char * cstrNE = "ABC";
+ std::string stringNE(cstrNE);
+ hidl_string hsNE(cstrNE);
+ EXPECT_TRUE(hs1 == hsE);
+ EXPECT_FALSE(hs1 != hsE);
+ EXPECT_TRUE(hs1 != hsNE);
+ EXPECT_FALSE(hs1 == hsNE);
+ EXPECT_TRUE(hs1 == cstrE);
+ EXPECT_FALSE(hs1 != cstrE);
+ EXPECT_TRUE(hs1 != cstrNE);
+ EXPECT_FALSE(hs1 == cstrNE);
+ EXPECT_TRUE(hs1 == stringE);
+ EXPECT_FALSE(hs1 != stringE);
+ EXPECT_TRUE(hs1 != stringNE);
+ EXPECT_FALSE(hs1 == stringNE);
}
TEST_F(LibHidlTest, VecTest) {
@@ -93,6 +117,19 @@
hidl_vec<int32_t> v3 = {5, 6, 7}; // initializer_list
EXPECT_EQ(v3.size(), 3ul);
EXPECT_ARRAYEQ(v3, array, v3.size());
+
+ auto iter = hv1.begin(); // iterator begin()
+ EXPECT_EQ(*iter, 5);
+ iter++; // post increment
+ EXPECT_EQ(*iter, 6);
+ ++iter; // pre increment
+ EXPECT_EQ(*iter, 7);
+
+ int32_t sum = 0; // range based for loop interoperability
+ for (auto &&i: hv1) {
+ sum += i;
+ }
+ EXPECT_EQ(sum, 5+6+7);
}
TEST_F(LibHidlTest, ArrayTest) {