| 38 | using namespace bytedance::bolt; |
| 39 | |
| 40 | TEST(StringView, basic) { |
| 41 | std::string text = "We are stardust, we are golden..."; |
| 42 | for (int32_t i = 0; i < text.size(); ++i) { |
| 43 | std::string subText(text.data(), i); |
| 44 | |
| 45 | LOG(INFO) << "Testing for i = " << i << " subText = " << subText; |
| 46 | StringView view = StringView(subText.data(), subText.size()); |
| 47 | EXPECT_EQ(view.size(), i); |
| 48 | EXPECT_EQ(view.isInline(), i <= StringView::kInlineSize); |
| 49 | if (view.isInline()) { |
| 50 | EXPECT_NE(view.data(), subText.data()); |
| 51 | } else { |
| 52 | EXPECT_EQ(view.data(), subText.data()); |
| 53 | } |
| 54 | EXPECT_EQ(view.materialize(), subText); |
| 55 | EXPECT_EQ(view.getString(), subText); |
| 56 | EXPECT_EQ(view, StringView(subText.data(), subText.size())); |
| 57 | |
| 58 | std::stringstream viewAsSteam; |
| 59 | viewAsSteam << view; |
| 60 | EXPECT_EQ(subText, viewAsSteam.str()); |
| 61 | } |
| 62 | } |
| 63 | |
| 64 | TEST(StringView, comparison) { |
| 65 | // Differ in prefix. |
nothing calls this directly
no test coverage detected