diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-01-22 19:44:46 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-01-22 19:44:46 +0000 |
commit | d5607d35d4f170a8d95a61ef1ee4c37343df0e26 (patch) | |
tree | fedb42a901f6e2249fc0aec4ad57f02966dad2c1 /llvm/unittests/Support/EndianStreamTest.cpp | |
parent | 78d6efdb9391d2662b83c3ebe698c8f7f1796dad (diff) | |
download | bcm5719-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.cpp | 30 |
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 |