int __wrap_sr_move_item(sr_session_ctx_t *session, const char *xpath, const sr_move_position_t position, const char *relative_item) { (void)session; struct ly_set *set, *set2 = NULL; struct lyd_node *node; set = lyd_find_path(data, xpath); assert_ptr_not_equal(set, NULL); assert_int_equal(set->number, 1); switch (position) { case SR_MOVE_BEFORE: set2 = lyd_find_path(data, relative_item); assert_ptr_not_equal(set2, NULL); assert_int_equal(set2->number, 1); assert_int_equal(lyd_insert_before(set2->set.d[0], set->set.d[0]), 0); break; case SR_MOVE_AFTER: set2 = lyd_find_path(data, relative_item); assert_ptr_not_equal(set2, NULL); assert_int_equal(set2->number, 1); assert_int_equal(lyd_insert_after(set2->set.d[0], set->set.d[0]), 0); break; case SR_MOVE_FIRST: node = set->set.d[0]->parent->child; assert_int_equal(lyd_insert_before(node, set->set.d[0]), 0); break; case SR_MOVE_LAST: node = set->set.d[0]->parent->child->prev; assert_int_equal(lyd_insert_after(node, set->set.d[0]), 0); break; } ly_set_free(set); ly_set_free(set2); return SR_ERR_OK; }
int main(int argc, char *argv[]) { int fd, i; struct ly_ctx *ctx = NULL; char buf[30]; struct lyd_node *data = NULL, *next; const struct lys_module *mod; /* libyang context */ ctx = ly_ctx_new(NULL); if (!ctx) { fprintf(stderr, "Failed to create context.\n"); return 1; } /* schema */ if (!(mod = lys_parse_path(ctx, argv[1], LYS_IN_YIN))) { fprintf(stderr, "Failed to load data model.\n"); goto cleanup; } /* data */ data = NULL; fd = open("./addloop_result.xml", O_WRONLY | O_CREAT, 0666); data = NULL; for(i = 1; i <= 5000; i++) { next = lyd_new(NULL, mod, "ptest1"); // if (i == 2091) {sprintf(buf, "%d", 1);} else { sprintf(buf, "%d", i);//} lyd_new_leaf(next, mod, "index", buf); lyd_new_leaf(next, mod, "p1", buf); if (!data) { data = next; } else { lyd_insert_after(data->prev, next); } if (lyd_validate(&data, LYD_OPT_CONFIG, NULL)) { goto cleanup; } //lyd_print_fd(fd, data, LYD_XML); } lyd_print_fd(fd, data, LYD_XML, LYP_WITHSIBLINGS | LYP_FORMAT); close(fd); cleanup: lyd_free_withsiblings(data); ly_ctx_destroy(ctx, NULL); return 0; }
void createDataTreeTestModule() { struct ly_ctx *ctx = NULL; struct lyd_node *node = NULL; struct lyd_node *n = NULL; struct lyd_node *r = NULL; ctx = ly_ctx_new(TEST_SCHEMA_SEARCH_DIR); assert_non_null(ctx); const struct lys_module *module = ly_ctx_load_module(ctx, "test-module", NULL); assert_non_null(module); r = lyd_new(NULL, module, "main"); assert_non_null(r); node = lyd_new_leaf(r, module, "enum", XP_TEST_MODULE_ENUM_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "raw", XP_TEST_MODULE_RAW_VALUE); assert_non_null(node); /*Strict = 1, Recursive = 1, Loggin = 0*/ node = lyd_new_leaf(r, module, "options", XP_TEST_MODULE_BITS_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "dec64", XP_TEST_MODULE_DEC64_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "i8", XP_TEST_MODULE_INT8_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "i16", XP_TEST_MODULE_INT16_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "i32", XP_TEST_MODULE_INT32_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "i64", XP_TEST_MODULE_INT64_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "ui8", XP_TEST_MODULE_UINT8_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "ui16", XP_TEST_MODULE_UINT16_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "ui32", XP_TEST_MODULE_UINT32_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "ui64", XP_TEST_MODULE_INT64_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "empty", XP_TEST_MODULE_EMPTY_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "boolean", XP_TEST_MODULE_BOOL_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "string", XP_TEST_MODULE_STRING_VALUE); assert_non_null(node); node = lyd_new_leaf(r, module, "id_ref", XP_TEST_MODULE_IDREF_VALUE); assert_non_null(node); /* leaf -list*/ n = lyd_new_leaf(r, module, "numbers", "1"); assert_non_null(n); n = lyd_new_leaf(r, module, "numbers", "2"); assert_non_null(n); n = lyd_new_leaf(r, module, "numbers", "42"); assert_non_null(n); /* list k1*/ node = lyd_new(NULL, module, "list"); assert_non_null(node); assert_int_equal(0,lyd_insert_after(r, node)); n = lyd_new_leaf(node, module, "key", "k1"); assert_non_null(n); n = lyd_new_leaf(node, module, "id_ref", "id_1"); assert_non_null(n); n = lyd_new_leaf(node, module, "union", "42"); assert_non_null(n); /* presence container*/ n = lyd_new(node, module, "wireless"); assert_non_null(n); /* list k2*/ node = lyd_new(NULL, module, "list"); assert_non_null(node); assert_int_equal(0, lyd_insert_after(r, node)); n = lyd_new_leaf(node, module, "key", "k2"); assert_non_null(n); n = lyd_new_leaf(node, module, "id_ref", "id_2"); assert_non_null(n); n = lyd_new_leaf(node, module, "union", "infinity"); assert_non_null(n); assert_int_equal(0, lyd_validate(&r, LYD_OPT_STRICT | LYD_OPT_CONFIG)); assert_int_equal(SR_ERR_OK, sr_save_data_tree_file(TEST_MODULE_DATA_FILE_NAME, r)); lyd_free_withsiblings(r); ly_ctx_destroy(ctx, NULL); }