Prepare for one shot array reading
With the patch changing the behavior for arrays of numbers, we want
these tests to continue testing the iteration array read paths. In the
next commit, std::vector<uint8_t> will no longer be using iteration
paths, so change the unit test to use strings instead. Next commit will
add back equivalent coverage.
Change-Id: I7484ac54b6f964596b5e914734999e6441b5e9c7
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/test/message/append.cpp b/test/message/append.cpp
index 20ca441..e753b01 100644
--- a/test/message/append.cpp
+++ b/test/message/append.cpp
@@ -285,14 +285,14 @@
TEST_F(AppendTest, Vector)
{
- const std::vector<int> v{1, 2, 3, 4};
+ const std::vector<std::string> v{"a", "b", "c", "d"};
{
testing::InSequence seq;
- expect_open_container(SD_BUS_TYPE_ARRAY, "i");
+ expect_open_container(SD_BUS_TYPE_ARRAY, "s");
for (const auto& i : v)
{
- expect_basic<int>(SD_BUS_TYPE_INT32, i);
+ expect_basic_string(SD_BUS_TYPE_STRING, i.c_str());
}
expect_close_container();
}
diff --git a/test/message/read.cpp b/test/message/read.cpp
index 9dbdbf1..a70fd3b 100644
--- a/test/message/read.cpp
+++ b/test/message/read.cpp
@@ -224,33 +224,33 @@
TEST_F(ReadTest, Vector)
{
- const std::vector<int> vi{1, 2, 3, 4};
+ const std::vector<std::string> vs{"1", "2", "3", "4"};
{
testing::InSequence seq;
- expect_enter_container(SD_BUS_TYPE_ARRAY, "i");
- for (const auto& i : vi)
+ expect_enter_container(SD_BUS_TYPE_ARRAY, "s");
+ for (const auto& i : vs)
{
expect_at_end(false, 0);
- expect_basic<int>(SD_BUS_TYPE_INT32, i);
+ expect_basic<const char*>(SD_BUS_TYPE_STRING, i.c_str());
}
expect_at_end(false, 1);
expect_exit_container();
}
- std::vector<int> ret_vi;
- new_message().read(ret_vi);
- EXPECT_EQ(vi, ret_vi);
+ std::vector<std::string> ret_vs;
+ new_message().read(ret_vs);
+ EXPECT_EQ(vs, ret_vs);
}
TEST_F(ReadTest, VectorEnterError)
{
{
testing::InSequence seq;
- expect_enter_container(SD_BUS_TYPE_ARRAY, "i", -EINVAL);
+ expect_enter_container(SD_BUS_TYPE_ARRAY, "s", -EINVAL);
}
- std::vector<int> ret;
+ std::vector<std::string> ret;
EXPECT_THROW(new_message().read(ret), sdbusplus::exception::SdBusError);
}
@@ -258,13 +258,13 @@
{
{
testing::InSequence seq;
- expect_enter_container(SD_BUS_TYPE_ARRAY, "i");
+ expect_enter_container(SD_BUS_TYPE_ARRAY, "s");
expect_at_end(false, 0);
- expect_basic<int>(SD_BUS_TYPE_INT32, 1);
+ expect_basic<const char*>(SD_BUS_TYPE_STRING, "1");
expect_at_end(false, -EINVAL);
}
- std::vector<int> ret;
+ std::vector<std::string> ret;
EXPECT_THROW(new_message().read(ret), sdbusplus::exception::SdBusError);
}
@@ -272,16 +272,16 @@
{
{
testing::InSequence seq;
- expect_enter_container(SD_BUS_TYPE_ARRAY, "i");
+ expect_enter_container(SD_BUS_TYPE_ARRAY, "s");
expect_at_end(false, 0);
- expect_basic<int>(SD_BUS_TYPE_INT32, 1);
+ expect_basic<const char*>(SD_BUS_TYPE_STRING, "1");
expect_at_end(false, 0);
- expect_basic<int>(SD_BUS_TYPE_INT32, 2);
+ expect_basic<const char*>(SD_BUS_TYPE_STRING, "2");
expect_at_end(false, 1);
expect_exit_container(-EINVAL);
}
- std::vector<int> ret;
+ std::vector<std::string> ret;
EXPECT_THROW(new_message().read(ret), sdbusplus::exception::SdBusError);
}
@@ -664,22 +664,22 @@
TEST_F(ReadTest, UnpackSingleVector)
{
- const std::vector<int> vi{1, 2, 3, 4};
+ const std::vector<std::string> vs{"a", "b", "c", "d"};
{
testing::InSequence seq;
- expect_enter_container(SD_BUS_TYPE_ARRAY, "i");
- for (const auto& i : vi)
+ expect_enter_container(SD_BUS_TYPE_ARRAY, "s");
+ for (const auto& i : vs)
{
expect_at_end(false, 0);
- expect_basic<int>(SD_BUS_TYPE_INT32, i);
+ expect_basic<const char*>(SD_BUS_TYPE_STRING, i.c_str());
}
expect_at_end(false, 1);
expect_exit_container();
}
- auto ret_vi = new_message().unpack<std::vector<int>>();
- EXPECT_EQ(vi, ret_vi);
+ auto ret_vs = new_message().unpack<std::vector<std::string>>();
+ EXPECT_EQ(vs, ret_vs);
}
TEST_F(ReadTest, UnpackMultiple)