tests CHANGE nehance xml tests - processing n-bytes UTF characters
diff --git a/tests/src/xml.c b/tests/src/xml.c
index d299116..4ebdbbd 100644
--- a/tests/src/xml.c
+++ b/tests/src/xml.c
@@ -298,14 +298,14 @@
/* empty element content is invalid - missing content terminating character < */
str = "";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Unexpected end-of-file. Line number 1.");
- str = p = "xxx";
+ logbuf_assert("Unexpected end-of-file. Line number 2.");
free(out);
out = NULL;
+ str = p = "xxx";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Unexpected end-of-file. Line number 1.");
+ logbuf_assert("Unexpected end-of-file. Line number 2.");
assert_ptr_equal(p, str); /* input data not eaten */
free(out);
@@ -318,22 +318,40 @@
assert_string_equal("€𠜎Øn \n<&\"\'> ROK", out);
assert_string_equal("<", str);
+ /* test using n-bytes UTF8 hexadecimal code points */
+ str = "\'$¢€𐍈\'";
+ assert_int_equal(LY_SUCCESS, lyxml_get_string(&ctx, &str, &out, &out_len));
+ assert_string_equal("$¢€𐍈", out);
+
/* invalid characters in string */
str = p = "\'R\'";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Invalid character sequence \"'\", expected ;. Line number 2.");
+ logbuf_assert("Invalid character sequence \"'\", expected ;. Line number 3.");
assert_ptr_equal(p, str); /* input data not eaten */
str = p = "\"R\"";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Invalid character sequence \"\"\", expected ;. Line number 2.");
+ logbuf_assert("Invalid character sequence \"\"\", expected ;. Line number 3.");
assert_ptr_equal(p, str); /* input data not eaten */
str = p = "\"&nonsence;\"";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Entity reference \"&nonsence;\" not supported, only predefined references allowed. Line number 2.");
+ logbuf_assert("Entity reference \"&nonsence;\" not supported, only predefined references allowed. Line number 3.");
assert_ptr_equal(p, str); /* input data not eaten */
str = p = "&#o122;";
assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
- logbuf_assert("Invalid character reference \"&#o122;\". Line number 2.");
+ logbuf_assert("Invalid character reference \"&#o122;\". Line number 3.");
+ assert_ptr_equal(p, str); /* input data not eaten */
+
+ str = p = "\'\'";
+ assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
+ logbuf_assert("Invalid character reference \"\'\" (0x00000006). Line number 3.");
+ assert_ptr_equal(p, str); /* input data not eaten */
+ str = p = "\'\'";
+ assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
+ logbuf_assert("Invalid character reference \"\'\" (0x0000fdd0). Line number 3.");
+ assert_ptr_equal(p, str); /* input data not eaten */
+ str = p = "\'\'";
+ assert_int_equal(LY_EVALID, lyxml_get_string(&ctx, &str, &out, &out_len));
+ logbuf_assert("Invalid character reference \"\'\" (0x0000ffff). Line number 3.");
assert_ptr_equal(p, str); /* input data not eaten */
free(out);