55 #include <sys/types.h>
68 #include <amxc/amxc.h>
69 #include <amxp/amxp.h>
71 #include <amxd/amxd_dm.h>
72 #include <amxd/amxd_path.h>
78 #include <amxo/amxo.h>
83 #include <amxc/amxc_macros.h>
97 amxo_parser_parse_file(&
parser,
"./local.odl", amxd_dm_get_root(&
dm));
108 amxo_parser_clean(&
parser);
117 amxc_var_t* results = NULL;
118 amxc_var_init(&values);
120 assert_int_equal(
amxb_call(
bus_ctx,
"Device.Ethernet.Interface.1",
"_get", NULL, NULL, 5), 0);
122 assert_int_equal(
amxb_call(
bus_ctx,
"Device.Ethernet.Interface.1",
"_get", NULL, &values, 5), 0);
123 amxc_var_dump(&values, STDOUT_FILENO);
124 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
125 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
126 assert_int_equal(amxc_htable_size(&results->data.vm), 1);
128 assert_int_not_equal(
amxb_call(
bus_ctx,
"Device.Link.Interface.1",
"_get", NULL, NULL, 5), 0);
130 amxc_var_clean(&values);
135 amxc_var_t* results = NULL;
136 amxc_var_init(&values);
138 assert_int_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.1.Status", 0, &values, 5), 0);
139 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
140 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
141 amxc_var_dump(&values, STDOUT_FILENO);
142 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
143 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
144 assert_int_equal(amxc_htable_size(&results->data.vm), 1);
146 assert_int_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.*.Status", 0, &values, 5), 0);
147 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
148 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
149 amxc_var_dump(&values, STDOUT_FILENO);
150 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
151 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
152 assert_int_equal(amxc_htable_size(&results->data.vm), 5);
154 assert_int_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.[Enable == true].Status", 0, &values, 5), 0);
155 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
156 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
157 amxc_var_dump(&values, STDOUT_FILENO);
158 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
159 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
160 assert_int_equal(amxc_htable_size(&results->data.vm), 3);
162 assert_int_not_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Link.[Enable == true].Status", 0, &values, 5), 0);
164 amxc_var_clean(&values);
169 amxc_var_t* results = NULL;
170 amxc_var_init(&values);
173 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
174 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
175 amxc_var_dump(&values, STDOUT_FILENO);
176 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
177 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
178 assert_int_equal(amxc_htable_size(&results->data.vm), 2);
180 amxc_var_clean(&values);
186 amxc_var_t* results = NULL;
188 amxc_var_init(&values);
190 amxc_var_set_type(&values, AMXC_VAR_ID_HTABLE);
191 amxc_var_add_key(
bool, &values,
"Enable",
false);
192 amxc_var_add_key(cstring_t, &values,
"Status",
"Dormant");
193 assert_int_equal(
amxb_set(
bus_ctx,
"Device.Ethernet.Interface.1", &values, &ret, 5), 0);
194 amxc_var_dump(&ret, STDOUT_FILENO);
195 assert_int_equal(amxc_var_type_of(&ret), AMXC_VAR_ID_LIST);
196 assert_int_equal(amxc_var_type_of(GETI_ARG(&ret, 0)), AMXC_VAR_ID_HTABLE);
197 results = GETP_ARG(&ret,
"0.'Device.Ethernet.Interface.1.'");
198 assert_non_null(results);
199 assert_non_null(GET_ARG(results,
"Enable"));
200 assert_non_null(GET_ARG(results,
"Status"));
202 assert_int_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.1.", 0, &values, 5), 0);
203 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
204 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
205 amxc_var_dump(&values, STDOUT_FILENO);
206 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
207 results = amxc_var_get_key(results,
"Device.Ethernet.Interface.1.", AMXC_VAR_FLAG_DEFAULT);
208 results = amxc_var_get_key(results,
"Status", AMXC_VAR_FLAG_DEFAULT);
209 assert_string_equal(amxc_var_constcast(cstring_t, results),
"Dormant");
211 assert_int_not_equal(
amxb_set(
bus_ctx,
"Device.Link.Interface.1", &values, &ret, 5), 0);
213 amxc_var_clean(&ret);
214 amxc_var_clean(&values);
218 amxc_var_t req_paths;
220 amxc_var_t* req_path = NULL;
221 amxc_var_t* params = NULL;
222 amxc_var_t* results = NULL;
224 amxc_var_init(&req_paths);
226 amxc_var_set_type(&req_paths, AMXC_VAR_ID_LIST);
227 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
228 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.2.");
229 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
230 amxc_var_add_key(cstring_t, params,
"Status",
"dummy-invalid");
232 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
233 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.[Status == 'Dormant'].");
234 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
235 amxc_var_add_key(
bool, params,
"Enable",
false);
237 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
238 amxc_var_add_key(cstring_t, req_path,
"path",
"MQTT.Client.*.");
239 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
240 amxc_var_add_key(
bool, params,
"Enable",
true);
241 amxc_var_add_key(cstring_t, params,
"TransportProtocol",
"TLS");
243 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
244 amxc_var_add_key(cstring_t, req_path,
"path",
"MQTT.Client.1.");
245 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
246 amxc_var_add_key(
bool, params,
"Enable",
true);
247 amxc_var_add_key(cstring_t, params,
"TransportProtocol",
"TLS");
249 amxc_var_dump(&req_paths, STDOUT_FILENO);
252 amxc_var_dump(&ret, STDOUT_FILENO);
254 assert_int_equal(amxc_var_type_of(&ret), AMXC_VAR_ID_LIST);
255 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, &ret)), 1);
256 results = GETI_ARG(&ret, 0);
257 assert_non_null(results);
258 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status"));
259 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status")), AMXC_VAR_ID_HTABLE);
261 amxc_var_clean(&ret);
262 assert_int_equal(
amxb_get(
bus_ctx,
"MQTT.Client.*.Enable", 0, &ret, 5), 0);
263 assert_false(GETP_BOOL(&ret,
"0.'MQTT.Client.1.'.Enable"));
264 assert_false(GETP_BOOL(&ret,
"0.'MQTT.Client.2.'.Enable"));
266 amxc_var_clean(&ret);
267 amxc_var_clean(&req_paths);
271 amxc_var_t req_paths;
273 amxc_var_t* req_path = NULL;
274 amxc_var_t* params = NULL;
275 amxc_var_t* results = NULL;
277 amxc_var_init(&req_paths);
279 amxc_var_set_type(&req_paths, AMXC_VAR_ID_LIST);
280 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
281 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.2.");
282 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
283 amxc_var_add_key(cstring_t, params,
"Status",
"Down");
285 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
286 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.2.");
287 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
288 amxc_var_add_key(
bool, params,
"Enable",
false);
289 amxc_var_dump(&req_paths, STDOUT_FILENO);
292 amxc_var_dump(&ret, STDOUT_FILENO);
294 assert_int_equal(amxc_var_type_of(&ret), AMXC_VAR_ID_LIST);
295 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, &ret)), 2);
296 results = GETI_ARG(&ret, 0);
297 assert_non_null(results);
298 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status"));
299 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'")), AMXC_VAR_ID_HTABLE);
301 results = GETI_ARG(&ret, 1);
302 assert_non_null(results);
303 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Enable"));
304 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'")), AMXC_VAR_ID_HTABLE);
306 amxc_var_clean(&ret);
307 assert_int_equal(
amxb_get(
bus_ctx,
"MQTT.Client.*.Enable", 0, &ret, 5), 0);
308 assert_false(GETP_BOOL(&ret,
"0.'MQTT.Client.1.'.Enable"));
309 assert_false(GETP_BOOL(&ret,
"0.'MQTT.Client.2.'.Enable"));
311 amxc_var_clean(&ret);
312 amxc_var_clean(&req_paths);
316 amxc_var_t req_paths;
318 amxc_var_t* req_path = NULL;
319 amxc_var_t* params = NULL;
320 amxc_var_t* results = NULL;
322 amxc_var_init(&req_paths);
324 amxc_var_set_type(&req_paths, AMXC_VAR_ID_LIST);
325 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
326 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.2.");
327 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
328 amxc_var_add_key(cstring_t, params,
"Status",
"dummy-invalid");
330 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
331 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.[Status == 'Dormant'].");
332 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
333 amxc_var_add_key(
bool, params,
"Enable",
false);
335 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
336 amxc_var_add_key(cstring_t, req_path,
"path",
"MQTT.Client.*.");
337 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
338 amxc_var_add_key(
bool, params,
"Enable",
true);
339 amxc_var_add_key(cstring_t, params,
"TransportProtocol",
"TLS");
341 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
342 amxc_var_add_key(cstring_t, req_path,
"path",
"MQTT.Client.[Alias == 'cpe-mybroker'].");
343 params = amxc_var_add_key(amxc_htable_t, req_path,
"parameters", NULL);
344 amxc_var_add_key(
bool, params,
"Enable",
true);
345 amxc_var_add_key(cstring_t, params,
"TransportProtocol",
"TLS");
347 amxc_var_dump(&req_paths, STDOUT_FILENO);
350 amxc_var_dump(&ret, STDOUT_FILENO);
352 assert_int_equal(amxc_var_type_of(&ret), AMXC_VAR_ID_LIST);
353 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, &ret)), 4);
354 results = GETI_ARG(&ret, 0);
355 assert_non_null(results);
356 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status"));
357 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status")), AMXC_VAR_ID_HTABLE);
359 results = GETI_ARG(&ret, 1);
360 assert_non_null(results);
361 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.1.'.Enable"));
362 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.1.'.Enable")), AMXC_VAR_ID_BOOL);
363 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.5.'.Enable"));
364 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.5.'.Enable")), AMXC_VAR_ID_BOOL);
366 results = GETI_ARG(&ret, 2);
367 assert_non_null(results);
368 assert_non_null(GETP_ARG(results,
"result.'MQTT.Client.1.'.Enable"));
369 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'MQTT.Client.1.'.Enable")), AMXC_VAR_ID_BOOL);
370 assert_non_null(GETP_ARG(results,
"result.'MQTT.Client.2.'.Enable"));
371 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'MQTT.Client.2.'.Enable")), AMXC_VAR_ID_BOOL);
373 results = GETI_ARG(&ret, 3);
374 assert_non_null(results);
376 amxc_var_clean(&ret);
377 assert_int_equal(
amxb_get(
bus_ctx,
"MQTT.Client.*.Enable", 0, &ret, 5), 0);
378 assert_true(GETP_BOOL(&ret,
"0.'MQTT.Client.1.'.Enable"));
379 assert_true(GETP_BOOL(&ret,
"0.'MQTT.Client.2.'.Enable"));
381 amxc_var_clean(&ret);
382 amxc_var_clean(&req_paths);
386 amxc_var_t req_paths;
388 amxc_var_t* req_path = NULL;
389 amxc_var_t* params = NULL;
390 amxc_var_t* results = NULL;
392 amxc_var_init(&req_paths);
394 amxc_var_set_type(&req_paths, AMXC_VAR_ID_LIST);
395 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
396 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.2.");
397 params = amxc_var_add_key(amxc_htable_t, req_path,
"oparameters", NULL);
398 amxc_var_add_key(cstring_t, params,
"Status",
"dummy-invalid");
400 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
401 amxc_var_add_key(cstring_t, req_path,
"path",
"Device.Ethernet.Interface.[Status == 'Dormant'].");
402 params = amxc_var_add_key(amxc_htable_t, req_path,
"oparameters", NULL);
403 amxc_var_add_key(
bool, params,
"Enable",
false);
405 req_path = amxc_var_add(amxc_htable_t, &req_paths, NULL);
406 amxc_var_add_key(cstring_t, req_path,
"path",
"MQTT.Client.*.");
407 params = amxc_var_add_key(amxc_htable_t, req_path,
"oparameters", NULL);
408 amxc_var_add_key(
bool, params,
"Enable",
true);
409 amxc_var_add_key(cstring_t, params,
"TransportProtocol",
"TLS");
410 amxc_var_dump(&req_paths, STDOUT_FILENO);
413 amxc_var_dump(&ret, STDOUT_FILENO);
415 assert_int_equal(amxc_var_type_of(&ret), AMXC_VAR_ID_LIST);
416 assert_int_equal(amxc_llist_size(amxc_var_constcast(amxc_llist_t, &ret)), 3);
417 results = GETI_ARG(&ret, 0);
418 assert_non_null(results);
419 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status"));
420 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.2.'.Status")), AMXC_VAR_ID_HTABLE);
422 results = GETI_ARG(&ret, 1);
423 assert_non_null(results);
424 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.1.'.Enable"));
425 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.1.'.Enable")), AMXC_VAR_ID_BOOL);
426 assert_non_null(GETP_ARG(results,
"result.'Device.Ethernet.Interface.5.'.Enable"));
427 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'Device.Ethernet.Interface.5.'.Enable")), AMXC_VAR_ID_BOOL);
429 results = GETI_ARG(&ret, 2);
430 assert_non_null(results);
431 assert_non_null(GETP_ARG(results,
"result.'MQTT.Client.1.'.Enable"));
432 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'MQTT.Client.1.'.Enable")), AMXC_VAR_ID_BOOL);
433 assert_non_null(GETP_ARG(results,
"result.'MQTT.Client.2.'.Enable"));
434 assert_int_equal(amxc_var_type_of(GETP_ARG(results,
"result.'MQTT.Client.2.'.Enable")), AMXC_VAR_ID_BOOL);
436 amxc_var_clean(&ret);
437 amxc_var_clean(&req_paths);
443 amxc_var_t* results = NULL;
445 amxc_var_init(&values);
447 amxc_var_set_type(&values, AMXC_VAR_ID_HTABLE);
448 amxc_var_add_key(
bool, &values,
"Enable",
false);
449 amxc_var_add_key(cstring_t, &values,
"Status",
"Unknown");
451 assert_int_equal(
amxb_add(
bus_ctx,
"Device.Ethernet.Interface", 0, NULL, &values, &ret, 5), 0);
452 assert_int_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.6.", 0, &values, 5), 0);
453 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
454 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
455 amxc_var_dump(&values, STDOUT_FILENO);
456 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
457 results = amxc_var_get_key(results,
"Device.Ethernet.Interface.6.", AMXC_VAR_FLAG_DEFAULT);
458 results = amxc_var_get_key(results,
"Status", AMXC_VAR_FLAG_DEFAULT);
459 assert_string_equal(amxc_var_constcast(cstring_t, results),
"Unknown");
461 assert_int_not_equal(
amxb_add(
bus_ctx,
"Device.Ethernet.Link", 0, NULL, NULL, NULL, 5), 0);
463 amxc_var_clean(&ret);
464 amxc_var_clean(&values);
470 amxc_var_init(&values);
473 assert_int_equal(
amxb_del(
bus_ctx,
"Device.Ethernet.Interface", 5, NULL, &ret, 5), 0);
474 assert_int_not_equal(
amxb_get(
bus_ctx,
"Device.Ethernet.Interface.5.", 0, &values, 5), 0);
476 assert_int_not_equal(
amxb_del(
bus_ctx,
"Device.Ethernet.Interface", 5, NULL, &ret, 5), 0);
478 amxc_var_clean(&ret);
479 amxc_var_clean(&values);
484 const char* expression1 =
"'Device.Ethernet.Interface.3.Stats.' in search_path('Device.Ethernet.Interface.*.Stats.')";
485 const char* expression2 =
"'Device.Ethernet.Interface.3.Stats.' in search_path('Device.Ethernet.Interface.3.Stats.')";
486 const char* expression3 =
"'Device.Ethernet.Interface.3.Stats.' in search_path('Device.Ethernet.Interface.[Enable == 1].Stats.')";
488 amxp_expr_init(&expr, expression1);
489 assert_true(amxp_expr_evaluate(&expr, NULL, NULL, NULL));
490 amxp_expr_clean(&expr);
492 amxp_expr_init(&expr, expression2);
493 assert_true(amxp_expr_evaluate(&expr, NULL, NULL, NULL));
494 amxp_expr_clean(&expr);
496 amxp_expr_init(&expr, expression3);
497 assert_false(amxp_expr_evaluate(&expr, NULL, NULL, NULL));
498 amxp_expr_clean(&expr);
504 amxc_var_t* results = NULL;
505 amxc_var_init(&values);
509 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
510 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
511 amxc_var_dump(&values, STDOUT_FILENO);
512 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
513 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
514 assert_int_equal(amxc_htable_size(&results->data.vm), 4);
517 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
518 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
519 amxc_var_dump(&values, STDOUT_FILENO);
520 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
521 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
522 assert_int_equal(amxc_htable_size(&results->data.vm), 2);
525 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
526 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
527 amxc_var_dump(&values, STDOUT_FILENO);
528 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
529 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
530 assert_int_equal(amxc_htable_size(&results->data.vm), 2);
533 assert_int_equal(amxc_var_type_of(&values), AMXC_VAR_ID_LIST);
534 assert_int_equal(amxc_llist_size(&values.data.vl), 1);
535 amxc_var_dump(&values, STDOUT_FILENO);
536 results = amxc_var_get_index(&values, 0, AMXC_VAR_FLAG_DEFAULT);
537 assert_int_equal(amxc_var_type_of(results), AMXC_VAR_ID_HTABLE);
538 assert_int_equal(amxc_htable_size(&results->data.vm), 2);
542 amxc_var_clean(&values);
549 amxc_var_set_type(&
config, AMXC_VAR_ID_HTABLE);
551 amxc_var_add_key(amxc_htable_t, &
config,
"dummy", NULL);
560 amxc_var_init(&resolved);
562 amxd_path_init(&path,
"Device.Ethernet.Interface.[Status == \"foo\"].");
565 assert_true(amxc_var_type_of(&resolved) == AMXC_VAR_ID_NULL);
567 amxc_var_clean(&resolved);
568 amxd_path_clean(&path);
Ambiorix bus agnostic API header file.
Ambiorix Bus Backend Interface.
#define AMXB_BE_DISCOVER_DESCRIBE
#define AMXB_BE_DISCOVER_LIST
int amxb_resolve(amxb_bus_ctx_t *bus_ctx, amxd_path_t *obj_path, amxc_var_t *ret_val)
#define AMXB_FLAG_FUNCTIONS
#define AMXB_FLAG_PARAMETERS
#define AMXB_FLAG_PARTIAL
Ambiorix Bus Agnostic Data Model registration.
void test_set_dummy_caps(uint32_t dummy_caps)
int test_unregister_dummy_be(void)
int test_load_dummy_remote(const char *odl)
int test_register_dummy_be(void)
amxb_bus_ctx_t * amxb_be_who_has(const char *object_path)
Searches a bus context that can provide a certain object.
void amxb_be_cache_set_size(uint32_t size)
Changes the size of the lookup cache.
void amxb_be_cache_remove_path(const char *object_path)
Removes an object path and its corresponding bus context from the lookup cache.
int amxb_set_config(amxc_var_t *const configuration)
Passes configuration options to the backends.
int amxb_connect(amxb_bus_ctx_t **ctx, const char *uri)
Create a bus connection.
void amxb_free(amxb_bus_ctx_t **ctx)
Frees allocated memory.
int amxb_disconnect(amxb_bus_ctx_t *ctx)
Disconnects a bus connection.
int amxb_del(amxb_bus_ctx_t *const bus_ctx, const char *object, uint32_t index, const char *name, amxc_var_t *ret, int timeout)
Deletes one or more instances of a multi-instance object.
int amxb_set(amxb_bus_ctx_t *const bus_ctx, const char *object, amxc_var_t *values, amxc_var_t *ret, int timeout)
Sets parameter values of one single object or of multiple instance objects.
int amxb_get_supported(amxb_bus_ctx_t *const bus_ctx, const char *object, uint32_t flags, amxc_var_t *ret, int timeout)
Gets the supported data model.
int amxb_call(amxb_bus_ctx_t *const bus_ctx, const char *object, const char *method, amxc_var_t *args, amxc_var_t *ret, int timeout)
Invokes a data model function.
int amxb_get(amxb_bus_ctx_t *const bus_ctx, const char *object, int32_t depth, amxc_var_t *ret, int timeout)
Fetches one or more objects or a single parameter.
int amxb_get_instances(amxb_bus_ctx_t *const bus_ctx, const char *search_path, int32_t depth, amxc_var_t *ret, int timeout)
Fetches the instances and the unique keys of a multi-instance object.
int amxb_add(amxb_bus_ctx_t *const bus_ctx, const char *object, uint32_t index, const char *name, amxc_var_t *values, amxc_var_t *ret, int timeout)
Adds an instance to a multi-instance object.
int amxb_set_multiple(amxb_bus_ctx_t *const bus_ctx, uint32_t flags, amxc_var_t *req_paths, amxc_var_t *ret, int timeout)
Sets parameter values for multiple objects (request paths)
int amxb_register(amxb_bus_ctx_t *const ctx, amxd_dm_t *const dm)
Registers a data model to a certain bus context (connection).
void test_amxb_set(UNUSED void **state)
void test_amxb_get_instances(UNUSED void **state)
void test_amxb_del(UNUSED void **state)
void test_amxb_set_config(UNUSED void **state)
void test_amxb_resolve_failure(UNUSED void **state)
void test_amxb_who_has(UNUSED void **state)
int test_amxb_e2e_teardown(UNUSED void **state)
void test_amxb_set_multiple_optional_params(UNUSED void **state)
void test_amxb_add(UNUSED void **state)
static amxo_parser_t parser
void test_amxb_set_multiple(UNUSED void **state)
void test_amxb_set_multiple_allow_partial(UNUSED void **state)
void test_search_path_expr_func(UNUSED void **state)
static amxb_bus_ctx_t * bus_ctx
void test_amxb_who_has_cache_set_size(UNUSED void **state)
void test_amxb_cache_disable(UNUSED void **state)
void test_amxb_call(UNUSED void **state)
void test_amxb_who_has_cache_remove_path(UNUSED void **state)
void test_amxb_get_supported(UNUSED void **state)
void test_amxb_get(UNUSED void **state)
int test_amxb_e2e_setup(UNUSED void **state)
void test_amxb_set_multiple_same_path(UNUSED void **state)