64 #include <amxc/amxc.h>
65 #include <amxp/amxp_signal.h>
66 #include <amxp/amxp_slot.h>
77 #include <amxc/amxc_macros.h>
92 assert_int_equal(
amxd_param_new(¶m,
"templ_param", AMXC_VAR_ID_CSTRING), 0);
95 assert_int_equal(
amxd_param_new(¶m,
"inst_param", AMXC_VAR_ID_BOOL), 0);
97 assert_int_equal(
amxd_param_new(¶m,
"param", AMXC_VAR_ID_UINT32), 0);
102 assert_int_equal(
amxd_param_new(¶m,
"child_param", AMXC_VAR_ID_CSTRING), 0);
105 assert_int_equal(
amxd_param_new(¶m,
"child_param2", AMXC_VAR_ID_BOOL), 0);
107 assert_int_equal(
amxd_param_new(¶m,
"child_param3", AMXC_VAR_ID_UINT64), 0);
119 amxc_var_init(&args);
120 amxc_var_init(&retval);
128 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
130 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_NULL);
132 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
133 amxc_var_add_key(uint32_t, &args,
"index", 1);
135 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_NULL);
137 assert_ptr_not_equal(instance, NULL);
140 assert_ptr_not_equal(instance, NULL);
145 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
146 amxc_var_add_key(cstring_t, &args,
"name",
"TestInst1");
148 amxc_var_add_key(
bool, &args,
"set_read_only",
false);
150 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
151 amxc_var_add_key(cstring_t, &args,
"name",
"TestInst1");
153 amxc_var_add_key(
bool, &args,
"set_read_only",
false);
156 assert_ptr_not_equal(instance, NULL);
158 assert_ptr_equal(instance, NULL);
160 assert_ptr_equal(instance, NULL);
164 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
165 amxc_var_add_key(uint32_t, &args,
"index", 3);
167 amxc_var_add_key(
bool, &args,
"set_read_only",
false);
169 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
170 amxc_var_add_key(uint32_t, &args,
"index", 3);
172 amxc_var_add_key(
bool, &args,
"set_read_only",
true);
175 assert_ptr_not_equal(instance, NULL);
178 assert_ptr_equal(instance, NULL);
181 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
182 amxc_var_add_key(uint32_t, &args,
"index", 10);
184 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
185 amxc_var_add_key(uint32_t, &args,
"index", 10);
187 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
188 amxc_var_add_key(uint32_t, &args,
"index", 10);
190 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
191 amxc_var_add_key(uint32_t, &args,
"index", 10);
194 assert_ptr_not_equal(instance, NULL);
197 assert_ptr_equal(instance, NULL);
204 amxc_var_clean(&args);
205 amxc_var_clean(&retval);
214 amxc_string_init(&name, 0);
216 *depth = (*depth) + 1;
217 amxc_string_setf(&name,
"Child_L%d", *depth);
221 amxc_string_setf(&name,
"param_L%d", (*depth) + 1);
222 assert_int_equal(
amxd_param_new(¶m, amxc_string_get(&name, 0), AMXC_VAR_ID_UINT32), 0);
225 amxc_string_clean(&name);
247 int depth_childs = depth + 1;
249 for(; depth_childs <= (depth + 1 + add_depth);) {
269 assert_non_null(
object);
272 assert_non_null(
object);
Ambiorix Data Model Default actions header file.
amxd_status_t amxd_action_object_del_inst(amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
Ambiorix Data Model API header file.
amxd_object_t * amxd_dm_findf(amxd_dm_t *const dm, const char *abs_path,...) __attribute__((format(printf
Ambiorix Data Model RPC methods API header file.
Ambiorix Data Model API header file.
amxd_status_t amxd_param_new(amxd_param_t **param, const char *name, const uint32_t type)
amxd_status_t amxd_param_set_attr(amxd_param_t *param, const amxd_pattr_id_t attr, const bool enable)
@ amxd_dm_access_protected
amxd_status_t amxd_dm_add_root_object(amxd_dm_t *const dm, amxd_object_t *const object)
Adds an object to the root of the data model.
amxd_status_t amxd_dm_init(amxd_dm_t *dm)
Initializes a data model structure.
void amxd_dm_clean(amxd_dm_t *dm)
Cleans a data model structure.
amxd_status_t amxd_action_object_destroy(amxd_object_t *object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
Default object destroy action implementation.
amxd_status_t amxd_object_add_object(amxd_object_t *const parent, amxd_object_t *const child)
Adds an object in the data model tree.
amxd_object_t * amxd_object_get_instance(const amxd_object_t *object, const char *name, uint32_t index)
Get an instance of the template object.
amxd_status_t amxd_object_add_param(amxd_object_t *const object, amxd_param_t *const param)
Adds a parameter definition to an object.
amxd_status_t amxd_object_set_attr(amxd_object_t *const object, const amxd_oattr_id_t attr, const bool enable)
Sets or unsets an object attribute.
amxd_status_t amxd_object_new_instance(amxd_object_t **object, amxd_object_t *templ, const char *name, uint32_t index, amxc_var_t *values)
Data model object constructor function.
amxd_status_t amxd_object_new(amxd_object_t **object, const amxd_object_type_t type, const char *name)
Data model object constructor function.
void amxd_object_delete(amxd_object_t **object)
Invokes the destroy handler(s) of the object.
static amxd_object_t * build_child(amxd_object_t *parent, int *depth)
void test_amxd_object_del_recursive_deep(UNUSED void **state)
void test_amxd_object_del(UNUSED void **state)
static amxd_object_t * test_build_dm_deep(int add_depth)
static amxd_object_t * test_build_dm(void)