Skip to content

Commit 50cb0ba

Browse files
committed
test parser UPDATE add tests for default nodes
1 parent 526e3ff commit 50cb0ba

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

tests/utests/data/test_parser_json.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,25 @@ setup(void **state)
4949
"rpc r1 {input {leaf l1 {type string;} leaf l2 {type string;}}}"
5050
"notification n2;"
5151
"}";
52+
53+
const char *schema2 = "module b {\n"
54+
" namespace urn:tests:b;\n"
55+
" prefix b;\n"
56+
" yang-version 1.1;\n"
57+
" container c1 {\n"
58+
" container c2 {\n"
59+
" leaf d { type string; default \"it is what? it is\"; }\n"
60+
" }\n"
61+
" }\n"
62+
" container c3 {\n"
63+
" leaf d2 { type string; default \"it is what? it is\"; }\n"
64+
" }\n"
65+
"}";
5266

5367
UTEST_SETUP;
5468

5569
UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL);
70+
UTEST_ADD_MODULE(schema2, LYS_IN_YANG, NULL, NULL);
5671
assert_int_equal(LY_SUCCESS, ly_ctx_set_searchdir(UTEST_LYCTX, TESTS_DIR_MODULES_YANG));
5772

5873
return 0;
@@ -920,6 +935,26 @@ test_metadata(void **state)
920935
CHECK_LOG_CTX("Invalid non-number-encoded int8 value \"value\".", "/a:c/x/@a:hint", 1);
921936
}
922937

938+
static void
939+
test_default(void **state)
940+
{
941+
const char *data;
942+
struct lyd_node *tree;
943+
char *out = NULL;
944+
945+
/* prepare data (they are default) */
946+
data = "{\"b:c1\":{}}";
947+
CHECK_PARSE_LYD(data, 0, LYD_VALIDATE_PRESENT, tree);
948+
assert_int_equal(LY_SUCCESS, lyd_print_mem(&out, tree, LYD_JSON, LYD_PRINT_KEEPEMPTYCONT | LYD_PRINT_WD_ALL | LYD_PRINT_WITHSIBLINGS | LYD_PRINT_SHRINK));
949+
950+
/* check data */
951+
data = "{\"b:c1\":{\"c2\":{\"d\":\"it is what? it is\"}},\"b:c3\":{\"d2\":\"it is what? it is\"}}";
952+
assert_string_equal(out, data);
953+
954+
free(out);
955+
lyd_free_all(tree);
956+
}
957+
923958
int
924959
main(void)
925960
{
@@ -939,6 +974,7 @@ main(void)
939974
UTEST(test_restconf_notification, setup),
940975
UTEST(test_restconf_reply, setup),
941976
UTEST(test_metadata, setup),
977+
UTEST(test_default, setup),
942978
};
943979

944980
return cmocka_run_group_tests(tests, NULL, NULL);

tests/utests/data/test_parser_xml.c

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,25 @@ setup(void **state)
5050
" md:annotation attr {type enumeration {enum val;}}"
5151
"}";
5252

53+
const char *schema2 =
54+
"module b {\n"
55+
" namespace urn:tests:b;\n"
56+
" prefix b;\n"
57+
" yang-version 1.1;\n"
58+
" container c1 {\n"
59+
" container c2 {\n"
60+
" leaf d { type string; default \"it is what? it is\"; }\n"
61+
" }\n"
62+
" }\n"
63+
" container c3 {\n"
64+
" leaf d2 { type string; default \"it is what? it is\"; }\n"
65+
" }\n"
66+
"}";
67+
5368
UTEST_SETUP;
5469

5570
UTEST_ADD_MODULE(schema, LYS_IN_YANG, NULL, NULL);
71+
UTEST_ADD_MODULE(schema2, LYS_IN_YANG, NULL, NULL);
5672
assert_int_equal(LY_SUCCESS, ly_ctx_set_searchdir(UTEST_LYCTX, TESTS_DIR_MODULES_YANG));
5773

5874
return 0;
@@ -1017,6 +1033,33 @@ test_subtree(void **state)
10171033
lyd_free_all(tree);
10181034
}
10191035

1036+
static void
1037+
test_default(void **state)
1038+
{
1039+
const char *data;
1040+
struct lyd_node *tree;
1041+
char *out = NULL;
1042+
1043+
/* prepare data (they are default) */
1044+
data = "<c1 xmlns=\"urn:tests:b\"/>\n";
1045+
CHECK_PARSE_LYD(data, 0, LYD_VALIDATE_PRESENT, tree);
1046+
assert_int_equal(LY_SUCCESS, lyd_print_mem(&out, tree, LYD_XML, LYD_PRINT_KEEPEMPTYCONT | LYD_PRINT_WD_ALL | LYD_PRINT_WITHSIBLINGS));
1047+
1048+
/* check data */
1049+
data = "<c1 xmlns=\"urn:tests:b\">\n"
1050+
" <c2>\n"
1051+
" <d>it is what? it is</d>\n"
1052+
" </c2>\n"
1053+
"</c1>\n"
1054+
"<c3 xmlns=\"urn:tests:b\">\n"
1055+
" <d2>it is what? it is</d2>\n"
1056+
"</c3>\n";
1057+
assert_string_equal(out, data);
1058+
1059+
free(out);
1060+
lyd_free_all(tree);
1061+
}
1062+
10201063
int
10211064
main(void)
10221065
{
@@ -1040,6 +1083,7 @@ main(void)
10401083
UTEST(test_data_skip, setup),
10411084
UTEST(test_metadata, setup),
10421085
UTEST(test_subtree, setup),
1086+
UTEST(test_default, setup),
10431087
};
10441088

10451089
return cmocka_run_group_tests(tests, NULL, NULL);

0 commit comments

Comments
 (0)