Skip to content

Commit f12f5b2

Browse files
authored
tests UPDATE cross-context anydata duplication
1 parent 3a031f5 commit f12f5b2

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

tests/utests/data/test_tree_data.c

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,39 @@ test_compare_diff_ctx(void **state)
281281
_UC->in = NULL;
282282
}
283283

284+
static void
285+
test_dup_anydata_to_ctx(void **state)
286+
{
287+
struct ly_ctx *ctx1 = NULL, *ctx2 = NULL;
288+
struct lyd_node *tree = NULL, *dup = NULL;
289+
const char *schema;
290+
const char *data;
291+
292+
(void)state;
293+
294+
schema = "module c {yang-version 1.1; namespace \"urn:tests:c\"; prefix c;"
295+
"container root {anydata payload;}}";
296+
data = "<root xmlns=\"urn:tests:c\">"
297+
"<payload><unknown xmlns=\"urn:unknown:c\" xmlns:x=\"urn:x\" x:attr=\"1\">"
298+
"<child>text</child></unknown></payload></root>";
299+
300+
assert_int_equal(LY_SUCCESS, ly_ctx_new(TESTS_SRC "/../modules", 0, &ctx1));
301+
assert_int_equal(LY_SUCCESS, ly_ctx_new(TESTS_SRC "/../modules", 0, &ctx2));
302+
assert_int_equal(LY_SUCCESS, lys_parse_mem(ctx1, schema, LYS_IN_YANG, NULL));
303+
assert_int_equal(LY_SUCCESS, lys_parse_mem(ctx2, schema, LYS_IN_YANG, NULL));
304+
305+
assert_int_equal(LY_SUCCESS, lyd_parse_data_mem(ctx1, data, LYD_XML, 0, LYD_VALIDATE_PRESENT, &tree));
306+
assert_int_equal(LY_SUCCESS, lyd_dup_siblings_to_ctx(tree, ctx2, NULL, LYD_DUP_RECURSIVE | LYD_DUP_WITH_FLAGS, &dup));
307+
308+
lyd_free_all(tree);
309+
ly_ctx_destroy(ctx1);
310+
311+
assert_int_equal(LY_SUCCESS, lyd_trim_xpath(&dup, "//*", NULL));
312+
313+
lyd_free_all(dup);
314+
ly_ctx_destroy(ctx2);
315+
}
316+
284317
static void
285318
test_dup(void **state)
286319
{
@@ -836,6 +869,7 @@ main(void)
836869
const struct CMUnitTest tests[] = {
837870
UTEST(test_compare, setup),
838871
UTEST(test_compare_diff_ctx, setup),
872+
UTEST(test_dup_anydata_to_ctx),
839873
UTEST(test_dup, setup),
840874
UTEST(test_target, setup),
841875
UTEST(test_list_pos, setup),

0 commit comments

Comments
 (0)