1 #include "debug_utils.h"
6 void debug_print_sr_val(const sr_val_t *value) {
11 log_add(1, "%s ", value->xpath);
13 switch (value->type) {
15 case SR_CONTAINER_PRESENCE_T:
16 log_add(1, "(container)");
19 log_add(1, "(list instance)");
22 log_add(1, "= %s", value->data.string_val);
25 log_add(1, "= %s", value->data.bool_val ? "true" : "false");
28 log_add(1, "= %g", value->data.decimal64_val);
31 log_add(1, "= %" PRId8, value->data.int8_val);
34 log_add(1, "= %" PRId16, value->data.int16_val);
37 log_add(1, "= %" PRId32, value->data.int32_val);
40 log_add(1, "= %" PRId64, value->data.int64_val);
43 log_add(1, "= %" PRIu8, value->data.uint8_val);
46 log_add(1, "= %" PRIu16, value->data.uint16_val);
49 log_add(1, "= %" PRIu32, value->data.uint32_val);
52 log_add(1, "= %" PRIu64, value->data.uint64_val);
54 case SR_IDENTITYREF_T:
55 log_add(1, "= %s", value->data.identityref_val);
58 log_add(1, "= %s", value->data.instanceid_val);
61 log_add(1, "= %s", value->data.bits_val);
64 log_add(1, "= %s", value->data.binary_val);
67 log_add(1, "= %s", value->data.enum_val);
70 log_add(1, "(empty leaf)");
73 log_add(1, "(unprintable)");
77 switch (value->type) {
80 case SR_CONTAINER_PRESENCE_T:
86 log_add(1, "%s", value->dflt ? " [default]" : "");
91 void debug_print_sr_change(sr_change_oper_t op, sr_val_t *old_val, sr_val_t *new_val) {
94 log_add_verbose(1, "CREATED: ");
95 debug_print_sr_val(new_val);
98 log_add_verbose(1, "DELETED: ");
99 debug_print_sr_val(old_val);
102 log_add_verbose(1, "MODIFIED: ");
103 debug_print_sr_val(old_val);
105 debug_print_sr_val(new_val);
108 log_add_verbose(1, "MOVED: %s\n", new_val->xpath);
115 void debug_print_lyd_value(struct lyd_node *node) {
116 switch(node->schema->nodetype) {
134 log_add(1, "[unprintable]");
139 log_add(1, LOG_COLOR_BOLD_MAGENTA"%s"LOG_COLOR_RESET, ((struct lyd_node_leaf_list *)node)->value_str);
144 void debug_print_lyd_node(struct lyd_node *node) {
145 struct lyd_node *start = node;
146 struct lyd_node *elem = 0;
147 struct lyd_node *next = 0;
150 LY_TREE_DFS_BEGIN(start, next, elem) {
151 char elemtype = ((elem->schema->flags & LYS_CONFIG_W) == 0) ? 'O' : 'R';
153 char *xpath = lyd_path(elem);
154 log_add_verbose(1, "[%c] %s: ", elemtype, xpath);
157 debug_print_lyd_value(elem);
160 LY_TREE_DFS_END(start, next, elem);
165 goto debug_print_dfs;
169 void debug_print_siblings(const struct lyd_node *node) {
170 struct lyd_node *start = (struct lyd_node *)node;
171 struct lyd_node *elem = 0;
177 char elemtype = ((elem->schema->flags & LYS_CONFIG_W) == 0) ? 'O' : 'R';
179 log_add_verbose(1, "[%c] %s: ", elemtype, lyd_path(elem));
181 debug_print_lyd_value(elem);