17static bool init_succeeds =
true;
31mk_fake_text_output(
char **argv) {
39 retval->
init = fake_text_init;
55teardown(
void **state) {
61empty_formatters(
void **state) {
68invalid_params(
void **state) {
74no_such_format(
void **state) {
81create_fails(
void **state) {
94fopen_fails(
void **state) {
98#if defined(HAVE_FOPEN64) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) && (SIZEOF_LONG < 8)
99 expect_string(__wrap_fopen64, pathname,
"destfile");
100 expect_string(__wrap_fopen64, mode,
"w");
101 will_return(__wrap_fopen64, EPERM);
114init_fails(
void **state) {
117 init_succeeds =
false;
119 init_succeeds =
true;
123everything_succeeds(
void **state) {
127 assert_string_equal(out->
fmt_name,
"text");
128 assert_ptr_equal(out->
dest, stdout);
129 assert_false(out->
quiet);
131 assert_string_equal(getenv(
"OCF_OUTPUT_FORMAT"),
"text");
137no_fmt_name_given(
void **state) {
141 assert_string_equal(out->
fmt_name,
"text");
147 cmocka_unit_test(empty_formatters),
148 cmocka_unit_test_setup_teardown(invalid_params, setup, teardown),
149 cmocka_unit_test_setup_teardown(no_such_format, setup, teardown),
150 cmocka_unit_test_setup_teardown(create_fails, setup, teardown),
151 cmocka_unit_test_setup_teardown(init_fails, setup, teardown),
152 cmocka_unit_test_setup_teardown(fopen_fails, setup, teardown),
153 cmocka_unit_test_setup_teardown(everything_succeeds, setup, teardown),
154 cmocka_unit_test_setup_teardown(no_fmt_name_given, setup, teardown))
void * __wrap_calloc(size_t nmemb, size_t size)
FILE * __wrap_fopen(const char *pathname, const char *mode)
Formatted output for pacemaker tools.
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)
int pcmk__output_new(pcmk__output_t **out, const char *fmt_name, const char *filename, char **argv)
int pcmk__call_message(pcmk__output_t *out, const char *message_id,...)
void pcmk__register_message(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
void pcmk__unregister_formats(void)
This structure contains everything that makes up a single output formatter.
int(* message)(pcmk__output_t *out, const char *message_id,...)
GHashTable * messages
Custom messages that are currently registered on this formatter.
const char * fmt_name
The name of this output formatter.
FILE * dest
Where output should be written.
void(* register_message)(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
bool(* init)(pcmk__output_t *out)
bool quiet
Should this formatter supress most output?
void(* free_priv)(pcmk__output_t *out)
#define pcmk__assert_asserts(stmt)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)