21 #include <gtest/gtest.h>
30 const char kTestString[] =
"blah";
31 const char kTestStringWithEmbeddedNull[] =
"blah\0foo";
32 const size_t kTestStringWithEmbeddedNullLength = 8;
33 const char kTestUnrelatedString[] =
"foo";
43 TEST_F(StringRefTest, FromCString) {
44 string_ref
s(kTestString);
49 TEST_F(StringRefTest, FromCStringWithLength) {
50 string_ref
s(kTestString, 2);
56 string copy(kTestString);
62 TEST_F(StringRefTest, CopyConstructor) {
63 string_ref s1(kTestString);
65 const string_ref& s2(s1);
70 TEST_F(StringRefTest, FromStringWithEmbeddedNull) {
71 string copy(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
75 EXPECT_EQ(kTestStringWithEmbeddedNullLength,
s.length());
78 TEST_F(StringRefTest, Assignment) {
79 string_ref s1(kTestString);
89 string_ref
s(kTestString);
91 for (
auto it =
s.cbegin();
it !=
s.cend(); ++
it) {
92 auto val = kTestString[
i++];
99 string_ref
s(kTestString);
100 size_t i = strlen(kTestString);
101 for (
auto rit =
s.crbegin(); rit !=
s.crend(); ++rit) {
102 auto val = kTestString[--
i];
108 TEST_F(StringRefTest, Capacity) {
115 string_ref
s(kTestString);
123 string_ref s1(kTestString);
124 string s1_copy(kTestString);
125 string_ref s2(kTestUnrelatedString);
126 string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
133 string_ref s1(kTestString);
134 string_ref s2(kTestUnrelatedString);
135 string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
143 TEST_F(StringRefTest, Endswith) {
144 string_ref s1(kTestString);
145 string_ref s2(kTestUnrelatedString);
146 string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
155 string_ref s1(kTestString);
156 string_ref s2(kTestUnrelatedString);
157 string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
171 string_ref
s(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
172 string_ref sub1 =
s.substr(0, 4);
173 EXPECT_EQ(string_ref(kTestString), sub1);
174 string_ref sub2 =
s.substr(5);
175 EXPECT_EQ(string_ref(kTestUnrelatedString), sub2);
178 TEST_F(StringRefTest, ComparisonOperators) {
179 string_ref s1(kTestString);
180 string_ref s2(kTestUnrelatedString);
181 string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
201 int main(
int argc,
char** argv) {