PEL: Add Stream ops for std::vector<uint8_t>
Add << and >> operators to the Stream class for use with a
std::vector<uint8_t>.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I9656ee4e34840d311148e6a701131b3420e62d25
diff --git a/test/openpower-pels/stream_test.cpp b/test/openpower-pels/stream_test.cpp
index dd5ca93..619952f 100644
--- a/test/openpower-pels/stream_test.cpp
+++ b/test/openpower-pels/stream_test.cpp
@@ -158,3 +158,25 @@
EXPECT_THROW(stream.offset(100), std::out_of_range);
}
+
+TEST(StreamTest, TestVectorInsertExtract)
+{
+ std::vector<uint8_t> toInsert{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77};
+ std::vector<uint8_t> data;
+
+ // Insert
+ Stream stream{data};
+ stream << toInsert;
+ EXPECT_EQ(data, toInsert);
+
+ // Extract
+ std::vector<uint8_t> toExtract;
+ toExtract.resize(toInsert.size());
+ stream.offset(0);
+ stream >> toExtract;
+
+ EXPECT_EQ(data, toExtract);
+
+ // Go off the end
+ EXPECT_THROW(stream >> toExtract, std::out_of_range);
+}