summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/EndianStreamTest.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-01-22 19:44:46 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-01-22 19:44:46 +0000
commitd5607d35d4f170a8d95a61ef1ee4c37343df0e26 (patch)
treefedb42a901f6e2249fc0aec4ad57f02966dad2c1 /llvm/unittests/Support/EndianStreamTest.cpp
parent78d6efdb9391d2662b83c3ebe698c8f7f1796dad (diff)
downloadbcm5719-llvm-d5607d35d4f170a8d95a61ef1ee4c37343df0e26.tar.gz
bcm5719-llvm-d5607d35d4f170a8d95a61ef1ee4c37343df0e26.zip
Add ArrayRef support to EndianStream.
Using an array instead of ArrayRef would allow type inference, but (short of using C99) one would still need to write typedef uint16_t VT[]; LE.write(VT{0x1234, 0x5678}); llvm-svn: 258535
Diffstat (limited to 'llvm/unittests/Support/EndianStreamTest.cpp')
-rw-r--r--llvm/unittests/Support/EndianStreamTest.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/unittests/Support/EndianStreamTest.cpp b/llvm/unittests/Support/EndianStreamTest.cpp
index 6a69be55f92..8221372468d 100644
--- a/llvm/unittests/Support/EndianStreamTest.cpp
+++ b/llvm/unittests/Support/EndianStreamTest.cpp
@@ -153,5 +153,35 @@ TEST(EndianStream, WriteDoubleBE) {
EXPECT_EQ(static_cast<uint8_t>(data[7]), 0x20);
}
+TEST(EndianStream, WriteArrayLE) {
+ SmallString<16> Data;
+
+ {
+ raw_svector_ostream OS(Data);
+ endian::Writer<little> LE(OS);
+ LE.write<uint16_t>({0x1234, 0x5678});
+ }
+
+ EXPECT_EQ(static_cast<uint8_t>(Data[0]), 0x34);
+ EXPECT_EQ(static_cast<uint8_t>(Data[1]), 0x12);
+ EXPECT_EQ(static_cast<uint8_t>(Data[2]), 0x78);
+ EXPECT_EQ(static_cast<uint8_t>(Data[3]), 0x56);
+}
+
+TEST(EndianStream, WriteVectorLE) {
+ SmallString<16> Data;
+
+ {
+ raw_svector_ostream OS(Data);
+ endian::Writer<little> LE(OS);
+ std::vector<uint16_t> Vec{0x1234, 0x5678};
+ LE.write<uint16_t>(Vec);
+ }
+
+ EXPECT_EQ(static_cast<uint8_t>(Data[0]), 0x34);
+ EXPECT_EQ(static_cast<uint8_t>(Data[1]), 0x12);
+ EXPECT_EQ(static_cast<uint8_t>(Data[2]), 0x78);
+ EXPECT_EQ(static_cast<uint8_t>(Data[3]), 0x56);
+}
} // end anon namespace
OpenPOWER on IntegriCloud