64 #include <amxc/amxc_variant.h>
65 #include <amxc/amxc_lqueue.h>
77 #include <amxc/amxc_macros.h>
79 const amxc_var_t*
const data,
82 assert_ptr_not_equal(data, NULL);
83 const char* txt = amxc_var_constcast(cstring_t, data);
84 assert_int_equal(amxc_var_type_of(data), AMXC_VAR_ID_CSTRING);
85 assert_ptr_not_equal(txt, NULL);
90 assert_true(amxc_var_is_null(data));
97 const amxc_var_t*
const data,
100 assert_ptr_not_equal(data, NULL);
101 const char* txt = amxc_var_constcast(cstring_t, data);
102 assert_int_equal(amxc_var_type_of(data), AMXC_VAR_ID_CSTRING);
103 assert_ptr_not_equal(txt, NULL);
108 assert_true(amxc_var_is_null(data));
120 assert_ptr_not_equal(sigs, NULL);
121 size_t nr_sigs = amxc_htable_size(sigs);
127 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 0);
130 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 1);
133 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 1);
136 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 1);
139 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 2);
142 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 3);
148 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 0);
156 assert_ptr_not_equal(sigs, NULL);
157 size_t nr_sigs = amxc_htable_size(sigs);
162 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 3);
165 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 3);
167 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 2);
169 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 2);
172 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 1);
174 assert_int_equal(amxc_htable_size(sigs), nr_sigs + 0);
182 assert_ptr_not_equal(sigs, NULL);
190 assert_int_not_equal(
amxp_slot_connect(NULL,
"test:signal1", NULL, NULL, NULL), 0);
193 assert_int_equal(amxc_llist_size(&
sig1->
slots), 1);
195 assert_int_equal(amxc_llist_size(&
sig1->
slots), 1);
197 assert_int_equal(amxc_llist_size(&
sig1->
slots), 2);
199 assert_int_equal(amxc_llist_size(&
sig1->
slots), 2);
201 assert_int_equal(amxc_llist_size(&sig3->
slots), 0);
203 assert_int_equal(amxc_llist_size(&sig3->
slots), 1);
205 assert_int_equal(amxc_llist_size(&sig3->
slots), 2);
206 assert_int_equal(amxc_llist_size(&
sig1->
slots), 2);
217 assert_ptr_not_equal(sigs, NULL);
224 assert_int_equal(amxc_llist_size(&
sig1->
slots), 1);
225 assert_int_equal(amxc_llist_size(&
sig2->
slots), 1);
228 assert_int_equal(amxc_llist_size(&sig3->
slots), 1);
231 assert_int_equal(amxc_llist_size(&
sig1->
slots), 2);
232 assert_int_equal(amxc_llist_size(&
sig2->
slots), 2);
233 assert_int_equal(amxc_llist_size(&sig3->
slots), 2);
235 assert_int_equal(amxc_llist_size(&
sig1->
slots), 2);
236 assert_int_equal(amxc_llist_size(&
sig2->
slots), 2);
238 assert_int_equal(amxc_llist_size(&sig3->
slots), 2);
246 assert_int_equal(amxc_llist_size(&
sig1->
slots), 0);
247 assert_int_equal(amxc_llist_size(&
sig2->
slots), 0);
250 assert_int_equal(amxc_llist_size(&
sig1->
slots), 1);
251 assert_int_equal(amxc_llist_size(&
sig2->
slots), 1);
252 assert_int_equal(amxc_llist_size(&sig3->
slots), 1);
270 assert_ptr_not_equal(sigs, NULL);
285 assert_int_equal(
count1, 0);
286 assert_int_equal(
count2, 0);
290 assert_int_equal(
count1, 1);
291 assert_int_equal(
count2, 1);
296 assert_int_equal(
count1, 2);
297 assert_int_equal(
count2, 2);
302 assert_int_equal(
count1, 3);
303 assert_int_equal(
count2, 2);
308 assert_int_equal(
count1, 3);
309 assert_int_equal(
count2, 3);
316 assert_int_equal(
count1, 3);
317 assert_int_equal(
count2, 3);
319 amxc_var_clean(&var);
345 assert_int_equal(
count1, 0);
346 assert_int_equal(
count2, 0);
350 assert_int_equal(
count1, 0);
351 assert_int_equal(
count2, 0);
353 assert_int_equal(
count1, 1);
354 assert_int_equal(
count2, 1);
359 assert_int_equal(
count1, 1);
360 assert_int_equal(
count2, 1);
362 assert_int_equal(
count1, 2);
363 assert_int_equal(
count2, 2);
368 assert_int_equal(
count1, 2);
369 assert_int_equal(
count2, 2);
371 assert_int_equal(
count1, 3);
372 assert_int_equal(
count2, 2);
377 assert_int_equal(
count1, 3);
378 assert_int_equal(
count2, 2);
380 assert_int_equal(
count1, 3);
381 assert_int_equal(
count2, 3);
385 assert_int_equal(
count1, 3);
386 assert_int_equal(
count2, 3);
389 assert_int_equal(
count1, 3);
390 assert_int_equal(
count2, 5);
397 assert_int_equal(
count1, 3);
398 assert_int_equal(
count2, 5);
400 amxc_var_clean(&var);
422 assert_int_equal(
count1, 1);
423 assert_int_equal(
count2, 1);
428 assert_int_equal(
count1, 1);
429 assert_int_equal(
count2, 2);
433 assert_int_equal(
count1, 1);
434 assert_int_equal(
count2, 3);
439 assert_int_equal(
count1, 1);
440 assert_int_equal(
count2, 3);
449 amxc_var_clean(&var);
473 assert_int_equal(
count1, 1);
474 assert_int_equal(
count2, 1);
479 assert_int_equal(
count1, 1);
480 assert_int_equal(
count2, 1);
485 assert_int_equal(
count1, 2);
486 assert_int_equal(
count2, 1);
497 amxc_var_clean(&var);
521 assert_int_equal(
count1, 1);
522 assert_int_equal(
count2, 1);
527 assert_int_equal(
count1, 2);
528 assert_int_equal(
count2, 1);
535 assert_int_equal(
count1, 2);
536 assert_int_equal(
count2, 2);
541 assert_int_equal(
count1, 2);
542 assert_int_equal(
count2, 2);
547 amxc_var_clean(&var);
571 assert_int_equal(
count1, 1);
572 assert_int_equal(
count2, 1);
577 assert_int_equal(
count1, 2);
578 assert_int_equal(
count2, 1);
585 assert_int_equal(
count1, 2);
586 assert_int_equal(
count2, 2);
591 assert_int_equal(
count1, 2);
592 assert_int_equal(
count2, 2);
597 amxc_var_clean(&var);
Ambiorix signal manager and signal API header file.
const amxc_htable_t PRIVATE * amxp_get_signals(const amxp_signal_mngr_t *sig_mngr)
Ambiorix slot API header file.
bool amxp_signal_has_slots(const amxp_signal_t *const signal)
Checks if the signal has slots conencted.
int amxp_signal_read(void)
Reads from the amxp signal file descriptor.
const char * amxp_signal_name(const amxp_signal_t *const signal)
Gets the name of the signal.
int amxp_signal_new(amxp_signal_mngr_t *sig_mngr, amxp_signal_t **signal, const char *name)
Constructor function, creates a new signal.
void amxp_signal_trigger(amxp_signal_t *const signal, const amxc_var_t *const data)
Triggers a signal.
int amxp_signal_emit(const amxp_signal_t *const signal, const amxc_var_t *const data)
Emits a signal.
int amxp_signal_fd(void)
Gets the amxp signal file descriptor.
int amxp_signal_disconnect_all(amxp_signal_t *const signal)
Disconnects all slots from the signal.
int amxp_signal_delete(amxp_signal_t **signal)
Destructor function, deletes a signal.
void amxp_slot_disconnect_all(amxp_slot_fn_t fn)
Disconnects a slot from all signals it was connected to.
int amxp_slot_connect_all(const char *const sig_reg_exp, const char *const expression, amxp_slot_fn_t fn, void *const priv)
Connects a slot to all existing and future signals.
int amxp_slot_disconnect(amxp_signal_mngr_t *const sig_mngr, const char *const sig_name, amxp_slot_fn_t fn)
Disconnects a slot from (a) signal(s).
int amxp_slot_connect(amxp_signal_mngr_t *const sig_mngr, const char *const sig_name, const char *const expression, amxp_slot_fn_t fn, void *const priv)
Connects a slot (function) to a named signal of a signal manager.
Structure containing the signal information.
void test_slot_disconnect(UNUSED void **state)
static void test_slot2(const char *const sig_name, const amxc_var_t *const data, UNUSED void *const priv)
void test_slot_connect_all(UNUSED void **state)
static const char * expected_sig_name
void test_signal_delete(UNUSED void **state)
void test_slot_connect(UNUSED void **state)
void test_signal_slot_verify_cleanup(UNUSED void **state)
void test_signal_disconnect_all(UNUSED void **state)
static void test_slot1(const char *const sig_name, const amxc_var_t *const data, UNUSED void *const priv)
void test_slot_disconnect_all2(UNUSED void **state)
void test_signal_trigger(UNUSED void **state)
void test_slot_disconnect_all(UNUSED void **state)
void test_signal_new(UNUSED void **state)
void test_signal_emit(UNUSED void **state)
static amxp_signal_t * sig2
static amxp_signal_t * sig1