pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pcmk_set_scheduler_cib_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2024 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
15static void
16null_scheduler(void **state)
17{
18 xmlNode *cib = pcmk__xe_create(NULL, "test");
19
20 assert_int_equal(pcmk_set_scheduler_cib(NULL, NULL), EINVAL);
21 assert_int_equal(pcmk_set_scheduler_cib(NULL, cib), EINVAL);
22
23 pcmk__xml_free(cib);
24}
25
26static void
27null_cib(void **state)
28{
30 .input = NULL,
31 };
32
33 assert_int_equal(pcmk_set_scheduler_cib(&scheduler, NULL), pcmk_rc_ok);
34 assert_null(scheduler.input);
35}
36
37static void
38previous_cib_null(void **state)
39{
41 .input = NULL,
42 };
43 xmlNode *cib = pcmk__xe_create(NULL, "test");
44
45 assert_int_equal(pcmk_set_scheduler_cib(&scheduler, cib), pcmk_rc_ok);
46 assert_ptr_equal(scheduler.input, cib);
47
48 pcmk__xml_free(cib);
49}
50
51static void
52previous_cib_nonnull(void **state)
53{
54 xmlNode *old_cib = pcmk__xe_create(NULL, "old");
55 xmlNode *new_cib = pcmk__xe_create(NULL, "new");
57 .input = old_cib,
58 };
59
60 assert_int_equal(pcmk_set_scheduler_cib(&scheduler, new_cib), pcmk_rc_ok);
61 assert_ptr_equal(scheduler.input, new_cib);
62
63 pcmk__xml_free(old_cib);
64 pcmk__xml_free(new_cib);
65}
66
67PCMK__UNIT_TEST(NULL, NULL,
68 cmocka_unit_test(null_scheduler),
69 cmocka_unit_test(null_cib),
70 cmocka_unit_test(previous_cib_null),
71 cmocka_unit_test(previous_cib_nonnull))
pcmk_scheduler_t * scheduler
@ pcmk_rc_ok
Definition results.h:159
Scheduler API.
int pcmk_set_scheduler_cib(pcmk_scheduler_t *scheduler, xmlNode *cib)
Definition scheduler.c:246
xmlNode * input
Definition scheduler.h:81
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
xmlNode * pcmk__xe_create(xmlNode *parent, const char *name)
void pcmk__xml_free(xmlNode *xml)
Definition xml.c:816