|
4 | 4 | * @brief test for string values |
5 | 5 | * |
6 | 6 | * Copyright (c) 2021 CESNET, z.s.p.o. |
| 7 | + * Copyright (c) 2026 Nokia |
7 | 8 | * |
8 | 9 | * This source code is licensed under BSD 3-Clause License (the "License"). |
9 | 10 | * You may not use this file except in compliance with the License. |
@@ -817,6 +818,52 @@ test_data_xml(void **state) |
817 | 818 | CHECK_LOG_CTX("Unsatisfied pattern - \"abc\" does not match \"a.*b\".", "/T_ANCHOR:port", 1); |
818 | 819 | TEST_ERROR_XML("T_ANCHOR", "cab"); |
819 | 820 | CHECK_LOG_CTX("Unsatisfied pattern - \"cab\" does not match \"a.*b\".", "/T_ANCHOR:port", 1); |
| 821 | + |
| 822 | + /* Unicode block test 1 - Basic Latin */ |
| 823 | + schema = MODULE_CREATE_YANG("T_UB_1", "leaf port {type string { pattern '\\p{IsBasicLatin}+';} } "); |
| 824 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 825 | + TEST_SUCCESS_XML("T_UB_1", "B4s1cLatin!", STRING, "B4s1cLatin!"); |
| 826 | + |
| 827 | + /* Unicode block test 2 - Basic Latin within brackets */ |
| 828 | + schema = MODULE_CREATE_YANG("T_UB_2", "leaf port {type string { pattern '[\\p{IsBasicLatin}]+';} } "); |
| 829 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 830 | + TEST_SUCCESS_XML("T_UB_2", "B4s1cLatin!", STRING, "B4s1cLatin!"); |
| 831 | + |
| 832 | + /* Unicode block test 3 - Latin-1 Supplement */ |
| 833 | + schema = MODULE_CREATE_YANG("T_UB_3", "leaf port {type string { pattern '[\\p{IsLatin-1Supplement}]+';} } "); |
| 834 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 835 | + TEST_SUCCESS_XML("T_UB_3", "ÁÉÍÓÖÜ", STRING, "ÁÉÍÓÖÜ"); |
| 836 | + |
| 837 | + /* Unicode block test 4 - Latin-1 Supplement */ |
| 838 | + schema = MODULE_CREATE_YANG("T_UB_4", "leaf port {type string { pattern '[\\p{IsLatin-1Supplement}]+';} } "); |
| 839 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 840 | + TEST_SUCCESS_XML("T_UB_4", "ÁÉÍÓÖÜ", STRING, "ÁÉÍÓÖÜ"); |
| 841 | + |
| 842 | + /* Unicode block test 5 - Latin Extended-A */ |
| 843 | + schema = MODULE_CREATE_YANG("T_UB_5", "leaf port {type string { pattern '[\\p{IsLatinExtended-A}]+';} } "); |
| 844 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 845 | + TEST_SUCCESS_XML("T_UB_5", "ŐŰőű", STRING, "ŐŰőű"); |
| 846 | + |
| 847 | + /* Unicode block test 6 - Basic Latin, Latin-1 Supplement, and Latin Extended-A */ |
| 848 | + schema = MODULE_CREATE_YANG("T_UB_6", "leaf port {type string {" |
| 849 | + " pattern '[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}\\p{IsLatinExtended-A}]+';" |
| 850 | + "}} "); |
| 851 | + UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL); |
| 852 | + 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!"); |
| 853 | + |
| 854 | + /* Unicode block test 7 - Unknown Unicode block */ |
| 855 | + schema = MODULE_CREATE_YANG("T_UB_7", "leaf port {type string { pattern '\\p{IsUnknownUnicodeBlock}+';} } "); |
| 856 | + UTEST_INVALID_MODULE(schema, LYS_IN_YANG, NULL, LY_EVALID); |
| 857 | + CHECK_LOG_CTX("Regular expression \"\\p{IsUnknownUnicodeBlock}+\" " |
| 858 | + "is not valid (\"UnknownUnicodeBlock}+\": unknown block name).", "/T_UB_7:port", 0); |
| 859 | + |
| 860 | + /* Unicode block test 8 - Unknown Unicode block with Basic Latin */ |
| 861 | + schema = MODULE_CREATE_YANG("T_UB_8", "leaf port {type string { " |
| 862 | + " pattern '[\\p{IsBasicLatin}\\p{IsUnknownUnicodeBlock}]+';" |
| 863 | + "}} "); |
| 864 | + UTEST_INVALID_MODULE(schema, LYS_IN_YANG, NULL, LY_EVALID); |
| 865 | + CHECK_LOG_CTX("Regular expression \"[\\p{IsBasicLatin}\\p{IsUnknownUnicodeBlock}]+\" " |
| 866 | + "is not valid (\"UnknownUnicodeBlock}]+\": unknown block name).", "/T_UB_8:port", 0); |
820 | 867 | } |
821 | 868 |
|
822 | 869 | static void |
|
0 commit comments