#include "upb/base/string_view.h" #include #include namespace { TEST(upb_StringView, Compare_Eq) { std::string s1("12345"); std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_EQ(upb_StringView_Compare(h1, h2), 0); } TEST(upb_StringView, Compare_Eq_Shorter) { std::string s1("1234"); // s1 is shorter. std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_LT(upb_StringView_Compare(h1, h2), 0); } TEST(upb_StringView, Compare_Eq_Longer) { std::string s1("123456"); // s1 is longer. std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_GT(upb_StringView_Compare(h1, h2), 0); } TEST(upb_StringView, Compare_Less) { std::string s1("12245"); // 2 < 3 std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_LT(upb_StringView_Compare(h1, h2), 0); } TEST(upb_StringView, Compare_Greater) { std::string s1("12445"); // 4 > 3 std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_GT(upb_StringView_Compare(h1, h2), 0); } TEST(upb_StringView, Compare_Greater_Shorter) { std::string s1("1244"); // s1 is shorter but 4 > 3. std::string s2("12345"); upb_StringView h1 = upb_StringView_FromDataAndSize(s1.data(), s1.size()); upb_StringView h2 = upb_StringView_FromDataAndSize(s2.data(), s2.size()); ASSERT_GT(upb_StringView_Compare(h1, h2), 0); } } // namespace