15 #include "../../crmcommon_private.h" 38 mk_fake_text_output(
char **argv) {
46 retval->
init = fake_text_init;
62 teardown(
void **state) {
68 invalid_entries(
void **state) {
75 {
"",
"", null_message_fn },
76 {
"", NULL, null_message_fn },
84 assert_int_equal(g_hash_table_size(out->
messages), 0);
90 valid_entries(
void **state) {
94 {
"msg1",
"text", null_message_fn },
95 {
"msg2",
"text", null_message_fn_2 },
102 assert_int_equal(g_hash_table_size(out->
messages), 2);
103 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg1"), null_message_fn);
104 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg2"), null_message_fn_2);
110 duplicate_message_ids(
void **state) {
114 {
"msg1",
"text", null_message_fn },
115 {
"msg1",
"text", null_message_fn_2 },
122 assert_int_equal(g_hash_table_size(out->
messages), 1);
123 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg1"), null_message_fn_2);
129 duplicate_functions(
void **state) {
133 {
"msg1",
"text", null_message_fn },
134 {
"msg2",
"text", null_message_fn },
141 assert_int_equal(g_hash_table_size(out->
messages), 2);
142 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg1"), null_message_fn);
143 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg2"), null_message_fn);
149 default_handler(
void **state) {
153 {
"msg1",
"default", null_message_fn },
160 assert_int_equal(g_hash_table_size(out->
messages), 1);
161 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg1"), null_message_fn);
167 override_default_handler(
void **state) {
171 {
"msg1",
"default", null_message_fn },
172 {
"msg1",
"text", null_message_fn_2 },
179 assert_int_equal(g_hash_table_size(out->
messages), 1);
180 assert_ptr_equal(g_hash_table_lookup(out->
messages,
"msg1"), null_message_fn_2);
186 cmocka_unit_test_setup_teardown(invalid_entries, setup, teardown),
187 cmocka_unit_test_setup_teardown(valid_entries, setup, teardown),
188 cmocka_unit_test_setup_teardown(duplicate_message_ids, setup, teardown),
189 cmocka_unit_test_setup_teardown(duplicate_functions, setup, teardown),
190 cmocka_unit_test_setup_teardown(default_handler, setup, teardown),
191 cmocka_unit_test_setup_teardown(override_default_handler, setup, teardown))
void pcmk__register_messages(pcmk__output_t *out, const pcmk__message_entry_t *table)
int(* message)(pcmk__output_t *out, const char *message_id,...)
const char * fmt_name
The name of this output formatter.
void pcmk__register_message(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
int pcmk__call_message(pcmk__output_t *out, const char *message_id,...)
GHashTable * messages
Custom messages that are currently registered on this formatter.
G_GNUC_INTERNAL int pcmk__bare_output_new(pcmk__output_t **out, const char *fmt_name, const char *filename, char **argv)
Formatted output for pacemaker tools.
void(* register_message)(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
void(* free_priv)(pcmk__output_t *out)
bool(* init)(pcmk__output_t *out)
#define pcmk__assert_asserts(stmt)
int pcmk__register_format(GOptionGroup *group, const char *name, pcmk__output_factory_t create, const GOptionEntry *options)
void pcmk__output_free(pcmk__output_t *out)
void pcmk__unregister_formats(void)
This structure contains everything that makes up a single output formatter.