pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pe_new_working_set_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2022-2023 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 General Public License version 2
7 * or later (GPLv2+) 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(pcmk_scheduler_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(scheduler);
37
38 /* Avoid calling pe_free_working_set here so we don't artificially
39 * inflate the coverage numbers.
40 */
41 free(scheduler);
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:90
void * __wrap_calloc(size_t nmemb, size_t size)
Definition mock.c:93
pcmk_scheduler_t * scheduler
pcmk_scheduler_t * pe_new_working_set(void)
Create a new object to hold scheduler data.
Definition status.c:34
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)