diff options
Diffstat (limited to 'lldb/unittests/Core/DataExtractorTest.cpp')
-rw-r--r-- | lldb/unittests/Core/DataExtractorTest.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/lldb/unittests/Core/DataExtractorTest.cpp b/lldb/unittests/Core/DataExtractorTest.cpp index f2288387505..22438e59bea 100644 --- a/lldb/unittests/Core/DataExtractorTest.cpp +++ b/lldb/unittests/Core/DataExtractorTest.cpp @@ -21,7 +21,7 @@ using namespace lldb_private; TEST(DataExtractorTest, GetBitfield) { - char buffer[] = { 0x01, 0x23, 0x45, 0x67 }; + uint8_t buffer[] = { 0x01, 0x23, 0x45, 0x67 }; DataExtractor LE(buffer, sizeof(buffer), lldb::eByteOrderLittle, sizeof(void *)); DataExtractor BE(buffer, sizeof(buffer), lldb::eByteOrderBig, sizeof(void *)); @@ -33,7 +33,24 @@ TEST(DataExtractorTest, GetBitfield) ASSERT_EQ(buffer[1], BE.GetMaxU64Bitfield(&offset, sizeof(buffer), 8, 8)); offset = 0; - ASSERT_EQ(buffer[1], LE.GetMaxS64Bitfield(&offset, sizeof(buffer), 8, 8)); + ASSERT_EQ(int8_t(buffer[1]), LE.GetMaxS64Bitfield(&offset, sizeof(buffer), 8, 8)); offset = 0; - ASSERT_EQ(buffer[1], BE.GetMaxS64Bitfield(&offset, sizeof(buffer), 8, 8)); + ASSERT_EQ(int8_t(buffer[1]), BE.GetMaxS64Bitfield(&offset, sizeof(buffer), 8, 8)); +} + +TEST(DataExtractorTest, PeekData) +{ + uint8_t buffer[] = { 0x01, 0x02, 0x03, 0x04 }; + DataExtractor E(buffer, sizeof buffer, lldb::eByteOrderLittle, 4); + + EXPECT_EQ(buffer + 0, E.PeekData(0, 0)); + EXPECT_EQ(buffer + 0, E.PeekData(0, 4)); + EXPECT_EQ(nullptr, E.PeekData(0, 5)); + + EXPECT_EQ(buffer + 2, E.PeekData(2, 0)); + EXPECT_EQ(buffer + 2, E.PeekData(2, 2)); + EXPECT_EQ(nullptr, E.PeekData(2, 3)); + + EXPECT_EQ(buffer + 4, E.PeekData(4, 0)); + EXPECT_EQ(nullptr, E.PeekData(4, 1)); } |