@@ -817,6 +817,52 @@ test_data_xml(void **state)
817817 CHECK_LOG_CTX ("Unsatisfied pattern - \"abc\" does not match \"a.*b\"." , "/T_ANCHOR:port" , 1 );
818818 TEST_ERROR_XML ("T_ANCHOR" , "cab" );
819819 CHECK_LOG_CTX ("Unsatisfied pattern - \"cab\" does not match \"a.*b\"." , "/T_ANCHOR:port" , 1 );
820+
821+ /* Unicode block test 1 - Basic Latin */
822+ schema = MODULE_CREATE_YANG ("T_UB_1" , "leaf port {type string { pattern '\\p{IsBasicLatin}+';} } " );
823+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
824+ TEST_SUCCESS_XML ("T_UB_1" , "B4s1cLatin!" , STRING , "B4s1cLatin!" );
825+
826+ /* Unicode block test 2 - Basic Latin within brackets */
827+ schema = MODULE_CREATE_YANG ("T_UB_2" , "leaf port {type string { pattern '[\\p{IsBasicLatin}]+';} } " );
828+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
829+ TEST_SUCCESS_XML ("T_UB_2" , "B4s1cLatin!" , STRING , "B4s1cLatin!" );
830+
831+ /* Unicode block test 3 - Latin-1 Supplement */
832+ schema = MODULE_CREATE_YANG ("T_UB_3" , "leaf port {type string { pattern '[\\p{IsLatin-1Supplement}]+';} } " );
833+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
834+ TEST_SUCCESS_XML ("T_UB_3" , "ÁÉÍÓÖÜ" , STRING , "ÁÉÍÓÖÜ" );
835+
836+ /* Unicode block test 4 - Latin-1 Supplement */
837+ schema = MODULE_CREATE_YANG ("T_UB_4" , "leaf port {type string { pattern '[\\p{IsLatin-1Supplement}]+';} } " );
838+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
839+ TEST_SUCCESS_XML ("T_UB_4" , "ÁÉÍÓÖÜ" , STRING , "ÁÉÍÓÖÜ" );
840+
841+ /* Unicode block test 5 - Latin Extended-A */
842+ schema = MODULE_CREATE_YANG ("T_UB_5" , "leaf port {type string { pattern '[\\p{IsLatinExtended-A}]+';} } " );
843+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
844+ TEST_SUCCESS_XML ("T_UB_5" , "ŐŰőű" , STRING , "ŐŰőű" );
845+
846+ /* Unicode block test 6 - Basic Latin, Latin-1 Supplement, and Latin Extended-A */
847+ schema = MODULE_CREATE_YANG ("T_UB_6" , "leaf port {type string {"
848+ " pattern '[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}\\p{IsLatinExtended-A}]+';"
849+ "}} " );
850+ UTEST_ADD_MODULE (schema , LYS_IN_YANG , NULL , NULL );
851+ TEST_SUCCESS_XML ("T_UB_6" , "Árvíztűrő tükörfúrógép!" , STRING , "Árvíztűrő tükörfúrógép!" );
852+
853+ /* Unicode block test 7 - Unknown Unicode block */
854+ schema = MODULE_CREATE_YANG ("T_UB_7" , "leaf port {type string { pattern '\\p{IsUnknownUnicodeBlock}+';} } " );
855+ UTEST_INVALID_MODULE (schema , LYS_IN_YANG , NULL , LY_EVALID );
856+ CHECK_LOG_CTX ("Regular expression \"\\p{IsUnknownUnicodeBlock}+\" "
857+ "is not valid (\"UnknownUnicodeBlock}+\": unknown block name)." , "/T_UB_7:port" , 0 );
858+
859+ /* Unicode block test 8 - Unknown Unicode block with Basic Latin */
860+ schema = MODULE_CREATE_YANG ("T_UB_8" , "leaf port {type string { "
861+ " pattern '[\\p{IsBasicLatin}\\p{IsUnknownUnicodeBlock}]+';"
862+ "}} " );
863+ UTEST_INVALID_MODULE (schema , LYS_IN_YANG , NULL , LY_EVALID );
864+ CHECK_LOG_CTX ("Regular expression \"[\\p{IsBasicLatin}\\p{IsUnknownUnicodeBlock}]+\" "
865+ "is not valid (\"UnknownUnicodeBlock}]+\": unknown block name)." , "/T_UB_8:port" , 0 );
820866}
821867
822868static void
0 commit comments