syslog-ng source
test_signal_slots.c File Reference
#include <criterion/criterion.h>
#include "signal-slot-connector/signal-slot-connector.h"
Include dependency graph for test_signal_slots.c:

Classes

struct  TestData
 
struct  SlotObj
 

Macros

#define signal_test1   SIGNAL(test, 1, TestData *)
 
#define signal_test2   SIGNAL(test, 2, TestData *)
 
#define DEFINE_TEST_SLOT(func_name)
 
#define test_signal_0   SIGNAL(test, func_0, TestData *)
 
#define test_signal_1   SIGNAL(test, func_1, TestData *)
 
#define test_signal_2   SIGNAL(test, func_2, TestData *)
 
#define test_signal_3   SIGNAL(test, func_3, TestData *)
 
#define ARRAY_SIZE(a)   (sizeof(a) / sizeof((a)[0]))
 

Functions

void test_data_init (TestData *data)
 
void slot_obj_init (SlotObj *obj)
 
void test1_slot (gpointer obj, TestData *user_data)
 
void test2_slot (gpointer obj, TestData *user_data)
 
 Test (basic_signal_slots, when_the_signal_is_emitted_then_the_connected_slot_is_executed)
 
 Test (basic_signal_slots, abort_when_trying_to_connect_multiple_times_the_same_connection,.signal=SIGABRT)
 
 Test (basic_signal_slots, abort_when_trying_to_disconnect_multiple_times_the_same_connection,.signal=SIGABRT)
 
 Test (basic_signal_slots, when_slot_is_disconnected_from_a_signal_and_the_signal_is_emitted_then_the_slot_should_not_be_executed)
 
 Test (basic_signal_slots, when_disconnect_the_connected_slot_from_a_signal_then_the_signal_is_unregistered)
 
 Test (basic_signal_slots, abort_when_trying_to_disconnect_a_connected_slot_with_different_slot_object_then_slot_is_not_disconnected,.signal=SIGABRT)
 
void _connect_a_signal_with_all_test_slots (SignalSlotConnector *ssc, Signal s)
 
void _disconnect_all_test_slots_from_a_signal (SignalSlotConnector *ssc, Signal s)
 
 Test (multiple_signals_slots, given_one_signal_with_multiple_slots_when_the_signal_is_emitted_then_the_slots_are_executed)
 
 Test (multiple_signals_slots, given_a_signal_with_multiple_slots_when_slots_are_disconnected_1_by_1_then_remaining_slots_are_still_executed)
 
void setup (void)
 
void teardown (void)
 
 TestSuite (multiple_signals_slots,.init=setup,.fini=teardown)
 
 TestSuite (basic_signal_slots,.init=setup,.fini=teardown)
 

Variables

Signal signals [4]
 
Slot slots [4]
 
SlotObj slot_objects [4]
 

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   a)    (sizeof(a) / sizeof((a)[0]))

◆ DEFINE_TEST_SLOT

#define DEFINE_TEST_SLOT (   func_name)
Value:
void func_name(gpointer obj, TestData *user_data) \
{ \
if (obj) \
{ \
SlotObj *slot_obj = (SlotObj *)obj; \
slot_obj->ctr++; \
} \
user_data->slot_ctr++; \
}
Definition: test_ringbuffer.c:32

◆ signal_test1

#define signal_test1   SIGNAL(test, 1, TestData *)

◆ signal_test2

#define signal_test2   SIGNAL(test, 2, TestData *)

◆ test_signal_0

#define test_signal_0   SIGNAL(test, func_0, TestData *)

◆ test_signal_1

#define test_signal_1   SIGNAL(test, func_1, TestData *)

◆ test_signal_2

#define test_signal_2   SIGNAL(test, func_2, TestData *)

◆ test_signal_3

#define test_signal_3   SIGNAL(test, func_3, TestData *)

Function Documentation

◆ _connect_a_signal_with_all_test_slots()

void _connect_a_signal_with_all_test_slots ( SignalSlotConnector *  ssc,
Signal  s 
)

◆ _disconnect_all_test_slots_from_a_signal()

void _disconnect_all_test_slots_from_a_signal ( SignalSlotConnector *  ssc,
Signal  s 
)

◆ setup()

void setup ( void  )

◆ slot_obj_init()

void slot_obj_init ( SlotObj *  obj)

◆ teardown()

void teardown ( void  )

◆ Test() [1/8]

Test ( basic_signal_slots  ,
abort_when_trying_to_connect_multiple_times_the_same_connection  ,
signal = SIGABRT 
)

◆ Test() [2/8]

Test ( basic_signal_slots  ,
abort_when_trying_to_disconnect_a_connected_slot_with_different_slot_object_then_slot_is_not_disconnected  ,
signal = SIGABRT 
)

◆ Test() [3/8]

Test ( basic_signal_slots  ,
abort_when_trying_to_disconnect_multiple_times_the_same_connection  ,
signal = SIGABRT 
)

◆ Test() [4/8]

Test ( basic_signal_slots  ,
when_disconnect_the_connected_slot_from_a_signal_then_the_signal_is_unregistered   
)

◆ Test() [5/8]

Test ( basic_signal_slots  ,
when_slot_is_disconnected_from_a_signal_and_the_signal_is_emitted_then_the_slot_should_not_be_executed   
)

◆ Test() [6/8]

Test ( basic_signal_slots  ,
when_the_signal_is_emitted_then_the_connected_slot_is_executed   
)

◆ Test() [7/8]

Test ( multiple_signals_slots  ,
given_a_signal_with_multiple_slots_when_slots_are_disconnected_1_by_1_then_remaining_slots_are_still_executed   
)

◆ Test() [8/8]

Test ( multiple_signals_slots  ,
given_one_signal_with_multiple_slots_when_the_signal_is_emitted_then_the_slots_are_executed   
)

◆ test1_slot()

void test1_slot ( gpointer  obj,
TestData user_data 
)

◆ test2_slot()

void test2_slot ( gpointer  obj,
TestData user_data 
)

◆ test_data_init()

void test_data_init ( TestData data)

◆ TestSuite() [1/2]

TestSuite ( basic_signal_slots  ,
init = setup,
fini = teardown 
)

◆ TestSuite() [2/2]

TestSuite ( multiple_signals_slots  ,
init = setup,
fini = teardown 
)

Variable Documentation

◆ signals

Signal signals[4]
Initial value:
=
{
}
#define test_signal_0
Definition: test_signal_slots.c:216

◆ slot_objects

SlotObj slot_objects[4]

◆ slots

Slot slots[4]
Initial value:
=
{
(Slot) test_slot_0,
(Slot) test_slot_1,
(Slot) test_slot_2,
(Slot) test_slot_3
}
void(* Slot)(gpointer object, gpointer user_data)
Definition: signal-slot-connector.h:48