summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/unittests/Support/EndianStreamTest.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2017-01-14 19:55:43 +0000
committerpatrick <patrick@openbsd.org>2017-01-14 19:55:43 +0000
commitbd3306aecb3a15e8967143b8cdbbccf2b1b19b74 (patch)
tree309a8132b44564b9e634c0da6815187ce8eab27c /gnu/llvm/unittests/Support/EndianStreamTest.cpp
parentkillp -a should not kill the window if only one pane. (diff)
downloadwireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.tar.xz
wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.zip
Import LLVM 3.9.1 including clang and lld.
Diffstat (limited to 'gnu/llvm/unittests/Support/EndianStreamTest.cpp')
-rw-r--r--gnu/llvm/unittests/Support/EndianStreamTest.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/llvm/unittests/Support/EndianStreamTest.cpp b/gnu/llvm/unittests/Support/EndianStreamTest.cpp
index 6a69be55f92..ea6c308c560 100644
--- a/gnu/llvm/unittests/Support/EndianStreamTest.cpp
+++ b/gnu/llvm/unittests/Support/EndianStreamTest.cpp
@@ -153,5 +153,56 @@ 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);
+}
+
+TEST(EndianStream, WriteFloatArrayLE) {
+ SmallString<16> Data;
+
+ {
+ raw_svector_ostream OS(Data);
+ endian::Writer<little> LE(OS);
+ LE.write<float>({12345.0f, 12346.0f});
+ }
+
+ EXPECT_EQ(static_cast<uint8_t>(Data[0]), 0x00);
+ EXPECT_EQ(static_cast<uint8_t>(Data[1]), 0xE4);
+ EXPECT_EQ(static_cast<uint8_t>(Data[2]), 0x40);
+ EXPECT_EQ(static_cast<uint8_t>(Data[3]), 0x46);
+
+ EXPECT_EQ(static_cast<uint8_t>(Data[4]), 0x00);
+ EXPECT_EQ(static_cast<uint8_t>(Data[5]), 0xE8);
+ EXPECT_EQ(static_cast<uint8_t>(Data[6]), 0x40);
+ EXPECT_EQ(static_cast<uint8_t>(Data[7]), 0x46);
+}
+
} // end anon namespace