13 #include <libxml/xmlstring.h> 29 assert_name_start_char(
int c,
bool reference)
31 gchar utf8_buf[6] = { 0, };
33 int ref_len = g_unichar_to_utf8(c, utf8_buf);
42 if ((c < 0xD800) || (c > 0xDFFF)) {
55 assert_int_equal(len, ref_len);
60 null_len(
void **state)
69 for (
int c = 0x00; c <= 0x7F; c++) {
70 if (g_ascii_isalpha(c) || c ==
':' || c ==
'_') {
71 assert_name_start_char(c,
true);
73 assert_name_start_char(c,
false);
79 unicode_0x80_to_0xBF(
void **state)
81 for (
int c = 0x80; c <= 0xBF; c++) {
82 assert_name_start_char(c,
false);
87 unicode_0xC0_to_0xD6(
void **state)
89 for (
int c = 0xC0; c <= 0xD6; c++) {
90 assert_name_start_char(c,
true);
95 unicode_0xD7(
void **state)
97 assert_name_start_char(0xD7,
false);
101 unicode_0xD8_to_0xF6(
void **state)
103 for (
int c = 0xD8; c <= 0xF6; c++) {
104 assert_name_start_char(c,
true);
109 unicode_0xF7(
void **state)
111 assert_name_start_char(0xF7,
false);
115 unicode_0xF8_to_0x2FF(
void **state)
117 for (
int c = 0xF8; c <= 0x2FF; c++) {
118 assert_name_start_char(c,
true);
123 unicode_0x300_to_0x36F(
void **state)
125 for (
int c = 0x300; c <= 0x36F; c++) {
126 assert_name_start_char(c,
false);
131 unicode_0x370_to_0x37D(
void **state)
133 for (
int c = 0x370; c <= 0x37D; c++) {
134 assert_name_start_char(c,
true);
139 unicode_0x37E(
void **state)
141 assert_name_start_char(0x37E,
false);
145 unicode_0x37F_to_0x1FFF(
void **state)
147 for (
int c = 0x37F; c <= 0x1FFF; c++) {
148 assert_name_start_char(c,
true);
153 unicode_0x2000_to_0x200B(
void **state)
155 for (
int c = 0x2000; c <= 0x200B; c++) {
156 assert_name_start_char(c,
false);
161 unicode_0x200C_to_0x200D(
void **state)
163 for (
int c = 0x200C; c <= 0x200D; c++) {
164 assert_name_start_char(c,
true);
169 unicode_0x200E_to_0x206F(
void **state)
171 for (
int c = 0x200E; c <= 0x206F; c++) {
172 assert_name_start_char(c,
false);
177 unicode_0x2070_to_0x218F(
void **state)
179 for (
int c = 0x2070; c <= 0x218F; c++) {
180 assert_name_start_char(c,
true);
185 unicode_0x2190_to_0x2BFF(
void **state)
187 for (
int c = 0x2190; c <= 0x2BFF; c++) {
188 assert_name_start_char(c,
false);
193 unicode_0x2C00_to_0x2FEF(
void **state)
195 for (
int c = 0x2C00; c <= 0x2FEF; c++) {
196 assert_name_start_char(c,
true);
201 unicode_0x2FF0_to_0x3000(
void **state)
203 for (
int c = 0x2FF0; c <= 0x3000; c++) {
204 assert_name_start_char(c,
false);
209 unicode_0x3001_to_0xD7FF(
void **state)
211 for (
int c = 0x3001; c <= 0xD7FF; c++) {
212 assert_name_start_char(c,
true);
217 unicode_0xD800_to_0xF8FF(
void **state)
219 for (
int c = 0xD800; c <= 0xF8FF; c++) {
220 assert_name_start_char(c,
false);
225 unicode_0xF900_to_0xFDCF(
void **state)
227 for (
int c = 0xF900; c <= 0xFDCF; c++) {
228 assert_name_start_char(c,
true);
233 unicode_0xFDD0_to_0xFDEF(
void **state)
235 for (
int c = 0xFDD0; c <= 0xFDEF; c++) {
236 assert_name_start_char(c,
false);
241 unicode_0xFDF0_to_0xFFFD(
void **state)
243 for (
int c = 0xFDF0; c <= 0xFFFD; c++) {
244 assert_name_start_char(c,
true);
249 unicode_0xFFFE_to_0xFFFF(
void **state)
251 for (
int c = 0xFFFE; c <= 0xFFFF; c++) {
252 assert_name_start_char(c,
false);
257 unicode_0x10000_to_0xEFFFF(
void **state)
259 for (
int c = 0x10000; c <= 0xEFFFF; c++) {
260 assert_name_start_char(c,
true);
265 unicode_0xF0000_to_0x10FFFF(
void **state)
267 for (
int c = 0xF0000; c <= 0x10FFFF; c++) {
268 assert_name_start_char(c,
false);
273 cmocka_unit_test(null_len),
274 cmocka_unit_test(ascii),
275 cmocka_unit_test(unicode_0x80_to_0xBF),
276 cmocka_unit_test(unicode_0xC0_to_0xD6),
277 cmocka_unit_test(unicode_0xD7),
278 cmocka_unit_test(unicode_0xD8_to_0xF6),
279 cmocka_unit_test(unicode_0xF7),
280 cmocka_unit_test(unicode_0xF8_to_0x2FF),
281 cmocka_unit_test(unicode_0x300_to_0x36F),
282 cmocka_unit_test(unicode_0x370_to_0x37D),
283 cmocka_unit_test(unicode_0x37E),
284 cmocka_unit_test(unicode_0x37F_to_0x1FFF),
285 cmocka_unit_test(unicode_0x2000_to_0x200B),
286 cmocka_unit_test(unicode_0x200C_to_0x200D),
287 cmocka_unit_test(unicode_0x200E_to_0x206F),
288 cmocka_unit_test(unicode_0x2070_to_0x218F),
289 cmocka_unit_test(unicode_0x2190_to_0x2BFF),
290 cmocka_unit_test(unicode_0x2C00_to_0x2FEF),
291 cmocka_unit_test(unicode_0x2FF0_to_0x3000),
292 cmocka_unit_test(unicode_0x3001_to_0xD7FF),
293 cmocka_unit_test(unicode_0xD800_to_0xF8FF),
294 cmocka_unit_test(unicode_0xF900_to_0xFDCF),
295 cmocka_unit_test(unicode_0xFDD0_to_0xFDEF),
296 cmocka_unit_test(unicode_0xFDF0_to_0xFFFD),
297 cmocka_unit_test(unicode_0xFFFE_to_0xFFFF),
298 cmocka_unit_test(unicode_0x10000_to_0xEFFFF),
299 cmocka_unit_test(unicode_0xF0000_to_0x10FFFF))
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
G_GNUC_INTERNAL bool pcmk__xml_is_name_start_char(const char *utf8, int *len)
pcmk__action_result_t result