64 #include <amxc/amxc.h>
65 #include <amxp/amxp_signal.h>
66 #include <amxp/amxp_slot.h>
83 amxc_var_t* part = NULL;
86 amxc_var_init(&retval);
92 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
94 amxc_var_dump(&retval, STDOUT_FILENO);
95 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
96 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 4);
97 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
98 assert_ptr_not_equal(part, NULL);
99 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
100 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 4);
101 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
102 assert_ptr_not_equal(part, NULL);
103 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
105 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
106 assert_ptr_not_equal(part, NULL);
107 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
108 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
109 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
110 assert_ptr_not_equal(part, NULL);
111 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
112 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
114 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
116 amxc_var_dump(&retval, STDOUT_FILENO);
117 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
118 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 3);
119 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
120 assert_ptr_not_equal(part, NULL);
121 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
122 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 3);
123 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
124 assert_ptr_not_equal(part, NULL);
125 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
127 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
128 assert_ptr_not_equal(part, NULL);
129 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
130 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
131 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
132 assert_ptr_equal(part, NULL);
134 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
136 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
137 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 3);
138 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
139 assert_ptr_not_equal(part, NULL);
140 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
141 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 2);
142 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
143 assert_ptr_not_equal(part, NULL);
144 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
146 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
147 assert_ptr_not_equal(part, NULL);
148 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
149 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 0);
150 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
151 assert_ptr_equal(part, NULL);
154 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
157 amxc_var_clean(&args);
158 amxc_var_clean(&retval);
168 amxc_var_t* part = NULL;
170 amxc_var_init(&args);
171 amxc_var_init(&retval);
179 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
181 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
182 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 4);
183 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
184 assert_ptr_not_equal(part, NULL);
185 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
186 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 4);
187 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
188 assert_ptr_not_equal(part, NULL);
189 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
191 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
192 assert_ptr_not_equal(part, NULL);
193 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
194 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
195 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
196 assert_ptr_not_equal(part, NULL);
197 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
198 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
200 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
202 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
203 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 3);
204 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
205 assert_ptr_not_equal(part, NULL);
206 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
207 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 3);
208 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
209 assert_ptr_not_equal(part, NULL);
210 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
212 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
213 assert_ptr_not_equal(part, NULL);
214 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
215 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
216 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
217 assert_ptr_equal(part, NULL);
219 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
221 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
222 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 3);
223 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
224 assert_ptr_not_equal(part, NULL);
225 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
226 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 2);
227 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
228 assert_ptr_not_equal(part, NULL);
229 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
231 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
232 assert_ptr_not_equal(part, NULL);
233 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
234 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 0);
235 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
236 assert_ptr_equal(part, NULL);
239 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
242 amxc_var_clean(&args);
243 amxc_var_clean(&retval);
252 amxc_var_t* part = NULL;
254 amxc_var_init(&args);
255 amxc_var_init(&retval);
260 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
261 amxc_var_add_key(
bool, &args,
"parameters",
true);
262 amxc_var_add_key(
bool, &args,
"functions",
false);
263 amxc_var_add_key(
bool, &args,
"objects",
false);
264 amxc_var_add_key(
bool, &args,
"instances",
false);
266 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
267 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 1);
268 part = amxc_var_get_path(&retval,
"parameters", AMXC_VAR_FLAG_DEFAULT);
269 assert_ptr_not_equal(part, NULL);
270 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
271 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 4);
273 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
274 amxc_var_add_key(
bool, &args,
"parameters",
false);
275 amxc_var_add_key(
bool, &args,
"functions",
true);
276 amxc_var_add_key(
bool, &args,
"objects",
false);
277 amxc_var_add_key(
bool, &args,
"instances",
false);
279 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
280 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 1);
281 part = amxc_var_get_path(&retval,
"functions", AMXC_VAR_FLAG_DEFAULT);
282 assert_ptr_not_equal(part, NULL);
283 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
286 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
287 amxc_var_add_key(
bool, &args,
"parameters",
false);
288 amxc_var_add_key(
bool, &args,
"functions",
false);
289 amxc_var_add_key(
bool, &args,
"objects",
true);
290 amxc_var_add_key(
bool, &args,
"instances",
false);
292 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
293 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 1);
294 part = amxc_var_get_path(&retval,
"objects", AMXC_VAR_FLAG_DEFAULT);
295 assert_ptr_not_equal(part, NULL);
296 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
297 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
299 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
300 amxc_var_add_key(
bool, &args,
"parameters",
false);
301 amxc_var_add_key(
bool, &args,
"functions",
false);
302 amxc_var_add_key(
bool, &args,
"objects",
false);
303 amxc_var_add_key(
bool, &args,
"instances",
true);
305 assert_int_equal(amxc_var_type_of(&retval), AMXC_VAR_ID_HTABLE);
306 assert_int_equal(amxc_htable_size(amxc_var_constcast(amxc_htable_t, &retval)), 1);
307 part = amxc_var_get_path(&retval,
"instances", AMXC_VAR_FLAG_DEFAULT);
308 assert_ptr_not_equal(part, NULL);
309 assert_int_equal(amxc_var_type_of(part), AMXC_VAR_ID_LIST);
310 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, part)), 1);
312 amxc_var_clean(&args);
313 amxc_var_clean(&retval);
Ambiorix Data Model Default actions header file.
Ambiorix Data Model API header file.
Ambiorix Data Model RPC methods API header file.
Ambiorix Data Model API header file.
amxd_status_t amxd_object_add_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn, void *priv)
amxd_status_t amxd_action_object_list(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)
Default object list action implementation.
amxd_object_t * amxd_object_get_child(const amxd_object_t *object, const char *name)
Get a child of the object.
amxd_status_t amxd_object_invoke_function(amxd_object_t *const object, const char *func_name, amxc_var_t *const args, amxc_var_t *const ret)
Calls an object RPC method.
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.
static amxd_object_t * test_build_dm(void)
#define SINGLETON_DEFAULT_FUNCS
#define TEMPLATE_DEFAULT_FUNCS
#define INSTANCE_DEFAULT_FUNCS
void test_amxd_list_function_parts(UNUSED void **state)
void test_amxd_list_function_all(UNUSED void **state)
void test_amxd_list_function_all_with_cb(UNUSED void **state)