MCPcopy Create free account
hub / github.com/boostorg/json / testIsValidUtf8

Method testIsValidUtf8

test/utf8.cpp:71–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69 }
70
71 void
72 testIsValidUtf8()
73 {
74 auto is_valid_utf8 = [](char const* str) {
75 std::uint16_t first = detail::classify_utf8(*str);
76 return detail::is_valid_utf8(str, first);
77 };
78
79 BOOST_TEST(is_valid_utf8("\xC2\x80")); // code point U+0080
80 BOOST_TEST(is_valid_utf8("\xDF\xBF")); // code point U+07FF
81 BOOST_TEST(is_valid_utf8("\xE0\xA0\x80")); // code point U+0800
82 BOOST_TEST(is_valid_utf8("\xEF\xBF\xBF")); // from code point U+0FFFF
83 BOOST_TEST(is_valid_utf8("\xF0\x90\x80\x80")); // code point U+010000
84 BOOST_TEST(is_valid_utf8("\xF4\x8F\xBF\xBF")); // code point U+010FFFF
85
86 BOOST_TEST(! is_valid_utf8("\x80"));
87 BOOST_TEST(! is_valid_utf8("\xBF"));
88
89 BOOST_TEST(! is_valid_utf8("\xDF\x00"));
90 BOOST_TEST(! is_valid_utf8("\xDF\x7F"));
91 BOOST_TEST(! is_valid_utf8("\xDF\xFF"));
92
93 BOOST_TEST(! is_valid_utf8("\xE0\x00\x80"));
94 BOOST_TEST(! is_valid_utf8("\xE1\x7F\x80"));
95 BOOST_TEST(! is_valid_utf8("\xE4\xFF\x80"));
96 BOOST_TEST(! is_valid_utf8("\xE8\x80\x00"));
97 BOOST_TEST(! is_valid_utf8("\xEC\x80\x7F"));
98 BOOST_TEST(! is_valid_utf8("\xEF\x80\xFF"));
99
100 BOOST_TEST(! is_valid_utf8("\xF0\x00\x80\x80"));
101 BOOST_TEST(! is_valid_utf8("\xF1\x7F\x80\x80"));
102 BOOST_TEST(! is_valid_utf8("\xF2\xFF\x80\x80"));
103 BOOST_TEST(! is_valid_utf8("\xF3\x80\x00\x80"));
104 BOOST_TEST(! is_valid_utf8("\xF4\x80\x7F\x80"));
105 BOOST_TEST(! is_valid_utf8("\xF0\x80\xFF\x80"));
106 BOOST_TEST(! is_valid_utf8("\xF1\x80\x80\x00"));
107 BOOST_TEST(! is_valid_utf8("\xF2\x80\x80\x7F"));
108 BOOST_TEST(! is_valid_utf8("\xF3\x80\x80\xFF"));
109 }
110
111 void
112 testUtf8Sequence()

Callers

nothing calls this directly

Calls 2

classify_utf8Function · 0.85
is_valid_utf8Function · 0.85

Tested by

no test coverage detected