65 #include <amxc/amxc.h>
66 #include <amxp/amxp_signal.h>
67 #include <amxp/amxp_slot.h>
79 #include <amxc/amxc_macros.h>
89 const amxc_var_t*
const args,
90 amxc_var_t*
const retval,
94 assert_ptr_not_equal(
object, NULL);
95 assert_ptr_equal(param, NULL);
96 assert_ptr_equal(args, NULL);
97 assert_ptr_equal(retval, NULL);
106 if(text && (strlen(text) > length)) {
110 if(text && (strcmp(text,
"INVALID") == 0)) {
122 const amxc_var_t*
const args,
123 amxc_var_t*
const retval,
126 assert_ptr_not_equal(
object, NULL);
128 assert_ptr_equal(param, NULL);
129 assert_ptr_not_equal(args, NULL);
130 assert_int_equal(amxc_var_type_of(args), AMXC_VAR_ID_HTABLE);
131 assert_ptr_not_equal(retval, NULL);
132 assert_ptr_equal(priv,
delinst);
136 amxc_var_t* temp = NULL;
141 temp = amxc_var_get_key(args,
"index", AMXC_VAR_FLAG_DEFAULT);
142 index = amxc_var_is_null(temp) ? 0 : amxc_var_dyncast(uint32_t, temp);
143 temp = amxc_var_get_key(args,
"name", AMXC_VAR_FLAG_DEFAULT);
144 key = amxc_var_is_null(temp) ? NULL : amxc_var_dyncast(cstring_t, temp);
163 const amxc_var_t*
const args,
164 amxc_var_t*
const retval,
167 assert_ptr_not_equal(
object, NULL);
169 assert_ptr_equal(param, NULL);
170 assert_ptr_not_equal(args, NULL);
171 assert_int_equal(amxc_var_type_of(args), AMXC_VAR_ID_HTABLE);
172 assert_ptr_not_equal(retval, NULL);
173 assert_ptr_equal(priv,
addinst);
176 amxc_var_t* temp = NULL;
179 temp = amxc_var_get_key(args,
"name", AMXC_VAR_FLAG_DEFAULT);
180 key = amxc_var_is_null(temp) ? NULL : amxc_var_dyncast(cstring_t, temp);
182 if((key != NULL) && (strcmp(key,
"INVALID") == 0)) {
201 assert_int_equal(
amxd_param_new(¶m,
"Enable", AMXC_VAR_ID_BOOL), 0);
203 assert_int_equal(
amxd_param_new(¶m,
"Length", AMXC_VAR_ID_UINT32), 0);
205 assert_int_equal(
amxd_param_new(¶m,
"Text", AMXC_VAR_ID_CSTRING), 0);
207 assert_int_equal(
amxd_param_new(¶m,
"ROText", AMXC_VAR_ID_CSTRING), 0);
213 assert_int_equal(
amxd_param_new(¶m,
"TextA", AMXC_VAR_ID_CSTRING), 0);
215 assert_int_equal(
amxd_param_new(¶m,
"TextB", AMXC_VAR_ID_CSTRING), 0);
221 assert_int_equal(
amxd_param_new(¶m,
"Sticky", AMXC_VAR_ID_BOOL), 0);
223 assert_int_equal(
amxd_param_new(¶m,
"Text", AMXC_VAR_ID_CSTRING), 0);
229 assert_int_equal(
amxd_param_new(¶m,
"Text", AMXC_VAR_ID_CSTRING), 0);
236 assert_int_equal(
amxd_param_new(¶m,
"Extra", AMXC_VAR_ID_BOOL), 0);
238 assert_int_equal(
amxd_param_new(¶m,
"Number", AMXC_VAR_ID_CSTRING), 0);
255 assert_ptr_not_equal(transaction, NULL);
258 assert_ptr_equal(transaction, NULL);
288 assert_ptr_not_equal(inst, NULL);
299 assert_ptr_not_equal(obj, NULL);
312 amxc_var_init(&args);
313 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
322 assert_ptr_not_equal(inst, NULL);
324 amxc_var_add_key(int32_t, &args,
"index", 1);
331 assert_ptr_not_equal(obj, NULL);
335 amxc_var_clean(&args);
390 assert_ptr_not_equal(text, NULL);
391 assert_string_equal(text,
"Hello world");
399 assert_ptr_not_equal(text, NULL);
400 assert_string_equal(text,
"Hello world");
419 assert_ptr_not_equal(text, NULL);
420 assert_string_equal(text,
"Hello world");
455 assert_ptr_not_equal(obj, NULL);
458 assert_ptr_not_equal(text, NULL);
459 assert_string_equal(text,
"InInst1");
463 assert_ptr_not_equal(obj, NULL);
466 assert_ptr_not_equal(text, NULL);
467 assert_string_equal(text,
"InInst2");
481 assert_ptr_not_equal(obj, NULL);
484 assert_ptr_not_equal(text, NULL);
485 assert_string_equal(text,
"InInst2");
502 assert_ptr_equal(obj, NULL);
563 assert_string_equal(text,
"AcraCadabra");
587 assert_string_equal(text,
"Hello World");
627 assert_ptr_not_equal(inst, NULL);
630 assert_ptr_not_equal(text, NULL);
631 assert_string_equal(text,
"Hi");
635 assert_ptr_not_equal(inst, NULL);
638 assert_ptr_not_equal(text, NULL);
639 assert_string_equal(text,
"Hi Back");
643 assert_ptr_not_equal(obj, NULL);
646 assert_ptr_not_equal(text, NULL);
647 assert_string_equal(text,
"Sub Hi");
662 assert_ptr_not_equal(inst, NULL);
665 assert_ptr_not_equal(text, NULL);
666 assert_string_equal(text,
"Yahoo");
680 amxc_var_set(cstring_t, &var,
"Hello");
697 amxc_var_clean(&var);
715 const amxc_var_t*
const data,
716 UNUSED
void*
const priv) {
718 const char* path = NULL;
720 amxc_var_dump(data, STDOUT_FILENO);
722 assert_string_equal(GET_CHAR(data,
"path"),
"Top2.");
723 assert_non_null(GETP_ARG(data,
"parameters.TextA"));
724 assert_non_null(GETP_ARG(data,
"parameters.TextB"));
727 assert_string_equal(path,
"Top2.");
733 assert_non_null(
object);
746 while(amxp_signal_read() == 0) {
749 assert_int_equal(amxp_slot_connect(&
dm->
sigmngr,
767 while(amxp_signal_read() == 0) {
780 amxc_var_init(&value);
783 while(amxp_signal_read() == 0) {
799 while(amxp_signal_read() == 0) {
815 assert_string_equal(GET_CHAR(&value, NULL),
"Test1");
819 amxc_var_clean(&value);
Ambiorix Data Model Default actions header file.
amxd_status_t amxd_action_object_add_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_status_t amxd_dm_store_mib(amxd_dm_t *const dm, amxd_object_t *const object)
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_object_add_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn, void *priv)
static uint32_t amxd_object_get_instance_count(const amxd_object_t *object)
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)
Ambiorix Data Model API header file.
amxd_status_t amxd_trans_add_mib(amxd_trans_t *const trans, const char *mib_name)
enum _amxd_action amxd_action_t
enum _amxd_status amxd_status_t
@ amxd_status_invalid_name
@ amxd_status_object_not_found
@ amxd_status_invalid_value
@ amxd_status_invalid_action
amxd_object_t amxd_status_t amxd_status_t const char * amxd_dm_signal_get_path(amxd_dm_t *const dm, const amxc_var_t *const signal_data)
Get the object path from a data model signal.
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_object_t * amxd_dm_signal_get_object(amxd_dm_t *const dm, const amxc_var_t *const signal_data)
Get the object from a data model using the path in the recieved signal.
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_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_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.
#define amxd_object_get_value(type, object, name, status)
Helper macro for getting a value.
amxd_status_t amxd_object_get_param(amxd_object_t *const object, const char *name, amxc_var_t *const value)
Gets a single parameter value.
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_new(amxd_object_t **object, const amxd_object_type_t type, const char *name)
Data model object constructor function.
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
amxd_status_t amxd_trans_new(amxd_trans_t **trans)
Allocates a transaction object on the heap and initializes it.
amxd_status_t amxd_trans_add_action(amxd_trans_t *const trans, const amxd_action_t reason, const amxc_var_t *data)
Adds an action to a transaction.
void amxd_trans_dump(const amxd_trans_t *const trans, const int fd, const bool reverse)
Dumps the transaction to a file descriptor.
amxd_status_t amxd_trans_set_attr(amxd_trans_t *trans, amxd_tattr_id_t attr, bool enable)
Set the transaction attributes.
void amxd_trans_clean(amxd_trans_t *const trans)
Cleans the transaction object.
amxd_status_t amxd_trans_apply(amxd_trans_t *const trans, amxd_dm_t *const dm)
Applies all previously added actions.
#define amxd_trans_set_value(type, trans, name, value)
Helper macro for setting a value.
amxd_status_t amxd_trans_add_inst(amxd_trans_t *const trans, const uint32_t index, const char *name)
Adds an instance add action to a transaction.
void amxd_trans_delete(amxd_trans_t **trans)
Frees the memory previously allocated for a transaction object.
amxd_status_t amxd_trans_del_inst(amxd_trans_t *const trans, const uint32_t index, const char *name)
Adds an instance delete action to a transaction.
amxd_status_t amxd_trans_select_pathf(amxd_trans_t *const trans, const char *path,...) __attribute__((format(printf
Selects an object using a absolute or relative path.
amxd_status_t amxd_status_t amxd_trans_select_object(amxd_trans_t *trans, const amxd_object_t *const object)
Selects an object using an object pointer.
amxd_status_t amxd_trans_set_param(amxd_trans_t *const trans, const char *param_name, amxc_var_t *const value)
Adds a set value action to a transaction.
amxd_status_t amxd_trans_init(amxd_trans_t *const trans)
Initializes a transaction object.
amxp_signal_mngr_t sigmngr
static amxd_status_t status
void test_amxd_transaction_new_delete(UNUSED void **state)
void test_amxd_transaction_on_null_object(UNUSED void **state)
static amxd_status_t amxd_action_test_validate(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)
static amxd_status_t amxd_action_test_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)
void test_amxd_transaction_select(UNUSED void **state)
amxd_dm_t * test_get_dm(void)
static void test_check_changed_event(UNUSED const char *const sig_name, const amxc_var_t *const data, UNUSED void *const priv)
void test_amxd_transaction_revert(UNUSED void **state)
void test_amxd_transaction_init_clean(UNUSED void **state)
void test_amxd_transaction_apply(UNUSED void **state)
void test_amxd_transaction_add_action(UNUSED void **state)
void test_amxd_transaction_del_inst(UNUSED void **state)
void test_amxd_transaction_set_param(UNUSED void **state)
void test_amxd_transaction_changed_event(UNUSED void **state)
static amxd_status_t amxd_action_test_add_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)
void test_amxd_transaction_can_add_mib(UNUSED void **state)
void test_amxd_transaction_add_inst(UNUSED void **state)
void test_amxd_transaction_add_action_signed_index(UNUSED void **state)