pacemaker 2.1.5-a3f44794f94
Scalable High-Availability cluster resource manager
pe_new_working_set_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2022 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10#include <crm_internal.h>
11
14
15#include "mock_private.h"
16
17static void
18calloc_fails(void **state) {
19 pcmk__mock_calloc = true; // calloc() will return NULL
20
21 expect_value(__wrap_calloc, nmemb, 1);
22 expect_value(__wrap_calloc, size, sizeof(pe_working_set_t));
23 assert_null(pe_new_working_set());
24
25 pcmk__mock_calloc = false; // Use real calloc()
26}
27
28static void
29calloc_succeeds(void **state) {
31
32 /* Nothing else to test about this function, as all it does is call
33 * set_working_set_defaults which is also a public function and should
34 * get its own unit test.
35 */
36 assert_non_null(data_set);
37
38 /* Avoid calling pe_free_working_set here so we don't artificially
39 * inflate the coverage numbers.
40 */
41 free(data_set);
42}
43
44PCMK__UNIT_TEST(NULL, NULL,
45 cmocka_unit_test(calloc_fails),
46 cmocka_unit_test(calloc_succeeds))
uint32_t size
Definition: cpg.c:4
bool pcmk__mock_calloc
Definition: mock.c:66
void * __wrap_calloc(size_t nmemb, size_t size)
Definition: mock.c:69
pe_working_set_t * data_set
pe_working_set_t * pe_new_working_set(void)
Create a new working set.
Definition: status.c:34
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)