Skip to content

Commit 16d2013

Browse files
committed
[lldb] Add test for Stream::Address and Stream::AddressRange
I'm refactoring those functions, so we should have some tests for them before doing that.
1 parent 817d618 commit 16d2013

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

lldb/unittests/Utility/StreamTest.cpp

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,98 @@ struct BinaryStreamTest : StreamTest {
3636
};
3737
}
3838

39+
TEST_F(StreamTest, AddressPrefix) {
40+
s.Address(0x1, 1, "foo");
41+
EXPECT_EQ("foo0x01", TakeValue());
42+
}
43+
44+
TEST_F(StreamTest, AddressEmptyPrefix) {
45+
s.Address(0x1, 1, nullptr);
46+
EXPECT_EQ("0x01", TakeValue());
47+
s.Address(0x1, 1, "");
48+
EXPECT_EQ("0x01", TakeValue());
49+
}
50+
51+
TEST_F(StreamTest, AddressSuffix) {
52+
s.Address(0x1, 1, nullptr, "foo");
53+
EXPECT_EQ("0x01foo", TakeValue());
54+
}
55+
56+
TEST_F(StreamTest, AddressNoSuffix) {
57+
s.Address(0x1, 1, nullptr, nullptr);
58+
EXPECT_EQ("0x01", TakeValue());
59+
s.Address(0x1, 1, nullptr, "");
60+
EXPECT_EQ("0x01", TakeValue());
61+
}
62+
63+
TEST_F(StreamTest, AddressPrefixAndSuffix) {
64+
s.Address(0x1, 1, "foo", "bar");
65+
EXPECT_EQ("foo0x01bar", TakeValue());
66+
}
67+
68+
TEST_F(StreamTest, AddressSize) {
69+
s.Address(0x0, 0);
70+
EXPECT_EQ("0x0", TakeValue());
71+
s.Address(0x1, 0);
72+
EXPECT_EQ("0x1", TakeValue());
73+
74+
s.Address(0x1, 1);
75+
EXPECT_EQ("0x01", TakeValue());
76+
s.Address(0xf1, 1);
77+
EXPECT_EQ("0xf1", TakeValue());
78+
s.Address(0xff, 1);
79+
EXPECT_EQ("0xff", TakeValue());
80+
s.Address(0x100, 1);
81+
EXPECT_EQ("0x100", TakeValue());
82+
83+
s.Address(0xf00, 4);
84+
EXPECT_EQ("0x00000f00", TakeValue());
85+
s.Address(0x100, 8);
86+
EXPECT_EQ("0x0000000000000100", TakeValue());
87+
s.Address(0x100, 10);
88+
EXPECT_EQ("0x00000000000000000100", TakeValue());
89+
s.Address(0x1234, 10);
90+
EXPECT_EQ("0x00000000000000001234", TakeValue());
91+
}
92+
93+
TEST_F(StreamTest, AddressRange) {
94+
s.AddressRange(0x100, 0x101, 2);
95+
EXPECT_EQ("[0x0100-0x0101)", TakeValue());
96+
}
97+
98+
TEST_F(StreamTest, AddressRangeEmptyRange) {
99+
s.AddressRange(0x100, 0x100, 2);
100+
EXPECT_EQ("[0x0100-0x0100)", TakeValue());
101+
s.AddressRange(0x0, 0x0, 2);
102+
EXPECT_EQ("[0x0000-0x0000)", TakeValue());
103+
}
104+
105+
TEST_F(StreamTest, AddressRangeInvalidRange) {
106+
s.AddressRange(0x100, 0x0FF, 2);
107+
EXPECT_EQ("[0x0100-0x00ff)", TakeValue());
108+
s.AddressRange(0x100, 0x0, 2);
109+
EXPECT_EQ("[0x0100-0x0000)", TakeValue());
110+
}
111+
112+
TEST_F(StreamTest, AddressRangeSize) {
113+
s.AddressRange(0x100, 0x101, 0);
114+
EXPECT_EQ("[0x100-0x101)", TakeValue());
115+
s.AddressRange(0x100, 0x101, 2);
116+
EXPECT_EQ("[0x0100-0x0101)", TakeValue());
117+
s.AddressRange(0x100, 0x101, 4);
118+
EXPECT_EQ("[0x00000100-0x00000101)", TakeValue());
119+
120+
s.AddressRange(0x100, 0x101, 4);
121+
EXPECT_EQ("[0x00000100-0x00000101)", TakeValue());
122+
s.AddressRange(0x1, 0x101, 4);
123+
EXPECT_EQ("[0x00000001-0x00000101)", TakeValue());
124+
s.AddressRange(0x101, 0x1, 4);
125+
EXPECT_EQ("[0x00000101-0x00000001)", TakeValue());
126+
127+
s.AddressRange(0x1, 0x101, 1);
128+
EXPECT_EQ("[0x01-0x101)", TakeValue());
129+
}
130+
39131
TEST_F(StreamTest, ChangingByteOrder) {
40132
s.SetByteOrder(lldb::eByteOrderPDP);
41133
EXPECT_EQ(lldb::eByteOrderPDP, s.GetByteOrder());

0 commit comments

Comments
 (0)