summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-08-31 15:50:50 +0000
committerZachary Turner <zturner@google.com>2016-08-31 15:50:50 +0000
commit9099901099fe65df184c5ff9cb4d08cfc4fd5eea (patch)
tree7507610dc10a4d9e81b6eeecc701f08620f0d93f
parente5d3ca50318f2449a5dc9820a1012903ffb03824 (diff)
downloadbcm5719-llvm-9099901099fe65df184c5ff9cb4d08cfc4fd5eea.tar.gz
bcm5719-llvm-9099901099fe65df184c5ff9cb4d08cfc4fd5eea.zip
Add more unit tests for StringExtractor hex/endian functions.
There were a few corner cases that weren't tested for dealing with extraction of an odd number of nibbles. Add tests for those here. llvm-svn: 280253
-rw-r--r--lldb/unittests/Utility/StringExtractorTest.cpp152
1 files changed, 133 insertions, 19 deletions
diff --git a/lldb/unittests/Utility/StringExtractorTest.cpp b/lldb/unittests/Utility/StringExtractorTest.cpp
index 67a989c3443..94cb4e58d07 100644
--- a/lldb/unittests/Utility/StringExtractorTest.cpp
+++ b/lldb/unittests/Utility/StringExtractorTest.cpp
@@ -571,50 +571,164 @@ TEST_F(StringExtractorTest, GetNameColonValueNoColon)
TEST_F(StringExtractorTest, GetU32LittleEndian)
{
- StringExtractor ex("ABCD");
- EXPECT_EQ(0xCDAB, ex.GetHexMaxU32(true, 0));
+ StringExtractor ex("");
+ EXPECT_EQ(0x0, ex.GetHexMaxU32(true, 0));
- ex.Reset("89ABCDEF");
- EXPECT_EQ(0xEFCDAB89, ex.GetHexMaxU32(true, 0));
+ ex.Reset("0");
+ EXPECT_EQ(0x0, ex.GetHexMaxU32(true, 1));
- ex.Reset("123456789ABCDEF");
+ ex.Reset("1");
+ EXPECT_EQ(0x1, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("01");
+ EXPECT_EQ(0x1, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("001");
+ EXPECT_EQ(0x100, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("12");
+ EXPECT_EQ(0x12, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("123");
+ EXPECT_EQ(0x312, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("1203");
+ EXPECT_EQ(0x312, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("1234");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("12340");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("123400");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("12345670");
+ EXPECT_EQ(0x70563412, ex.GetHexMaxU32(true, 0));
+
+ ex.Reset("123456701");
EXPECT_EQ(0, ex.GetHexMaxU32(true, 0));
}
TEST_F(StringExtractorTest, GetU32BigEndian)
{
- StringExtractor ex("ABCD");
- EXPECT_EQ(0xABCD, ex.GetHexMaxU32(false, 0));
+ StringExtractor ex("");
+ EXPECT_EQ(0x0, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("0");
+ EXPECT_EQ(0x0, ex.GetHexMaxU32(false, 1));
+
+ ex.Reset("1");
+ EXPECT_EQ(0x1, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("01");
+ EXPECT_EQ(0x1, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("001");
+ EXPECT_EQ(0x1, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("12");
+ EXPECT_EQ(0x12, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("123");
+ EXPECT_EQ(0x123, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("1203");
+ EXPECT_EQ(0x1203, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("1234");
+ EXPECT_EQ(0x1234, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("12340");
+ EXPECT_EQ(0x12340, ex.GetHexMaxU32(false, 0));
+
+ ex.Reset("123400");
+ EXPECT_EQ(0x123400, ex.GetHexMaxU32(false, 0));
- ex.Reset("89ABCDEF");
- EXPECT_EQ(0x89ABCDEF, ex.GetHexMaxU32(false, 0));
+ ex.Reset("12345670");
+ EXPECT_EQ(0x12345670, ex.GetHexMaxU32(false, 0));
- ex.Reset("123456789ABCDEF");
+ ex.Reset("123456700");
EXPECT_EQ(0, ex.GetHexMaxU32(false, 0));
}
TEST_F(StringExtractorTest, GetU64LittleEndian)
{
- StringExtractor ex("ABCD");
- EXPECT_EQ(0xCDAB, ex.GetHexMaxU64(true, 0));
+ StringExtractor ex("");
+ EXPECT_EQ(0x0, ex.GetHexMaxU64(true, 0));
- ex.Reset("89ABCDEF");
- EXPECT_EQ(0xEFCDAB89, ex.GetHexMaxU64(true, 0));
+ ex.Reset("0");
+ EXPECT_EQ(0x0, ex.GetHexMaxU64(true, 1));
+
+ ex.Reset("1");
+ EXPECT_EQ(0x1, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("01");
+ EXPECT_EQ(0x1, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("001");
+ EXPECT_EQ(0x100, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("12");
+ EXPECT_EQ(0x12, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("123");
+ EXPECT_EQ(0x312, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("1203");
+ EXPECT_EQ(0x312, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("1234");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("12340");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU64(true, 0));
+
+ ex.Reset("123400");
+ EXPECT_EQ(0x3412, ex.GetHexMaxU64(true, 0));
ex.Reset("123456789ABCDEF0");
EXPECT_EQ(0xF0DEBC9A78563412ULL, ex.GetHexMaxU64(true, 0));
- ex.Reset("123456789ABCDEF000");
+ ex.Reset("123456789ABCDEF01");
EXPECT_EQ(0, ex.GetHexMaxU64(true, 0));
}
TEST_F(StringExtractorTest, GetU64BigEndian)
{
- StringExtractor ex("ABCD");
- EXPECT_EQ(0xABCDULL, ex.GetHexMaxU64(false, 0));
+ StringExtractor ex("");
+ EXPECT_EQ(0x0, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("0");
+ EXPECT_EQ(0x0, ex.GetHexMaxU64(false, 1));
+
+ ex.Reset("1");
+ EXPECT_EQ(0x1, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("01");
+ EXPECT_EQ(0x1, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("001");
+ EXPECT_EQ(0x1, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("12");
+ EXPECT_EQ(0x12, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("123");
+ EXPECT_EQ(0x123, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("1203");
+ EXPECT_EQ(0x1203, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("1234");
+ EXPECT_EQ(0x1234, ex.GetHexMaxU64(false, 0));
+
+ ex.Reset("12340");
+ EXPECT_EQ(0x12340, ex.GetHexMaxU64(false, 0));
- ex.Reset("89ABCDEF");
- EXPECT_EQ(0x89ABCDEFULL, ex.GetHexMaxU64(false, 0));
+ ex.Reset("123400");
+ EXPECT_EQ(0x123400, ex.GetHexMaxU64(false, 0));
ex.Reset("123456789ABCDEF0");
EXPECT_EQ(0x123456789ABCDEF0ULL, ex.GetHexMaxU64(false, 0));
OpenPOWER on IntegriCloud