pacemaker  3.0.0-d8340737c4
Scalable High-Availability cluster resource manager
pe__cmp_rsc_priority_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 General Public License version 2
7  * or later (GPLv2+) WITHOUT ANY WARRANTY.
8  */
9 
10 #include <crm_internal.h>
11 
13 #include <crm/pengine/internal.h>
14 
15 #include "pe_status_private.h"
16 
17 static pcmk__resource_private_t rsc1_private = { pcmk__rsc_variant_primitive, };
18 static pcmk__resource_private_t rsc2_private = { pcmk__rsc_variant_primitive, };
19 static pcmk_resource_t rsc1 = { .priv = &rsc1_private };
20 static pcmk_resource_t rsc2 = { .priv = &rsc2_private };
21 
22 static void
23 rscs_equal(void **state)
24 {
25  rsc1.priv->priority = 0;
26  rsc2.priv->priority = 0;
27  assert_int_equal(pe__cmp_rsc_priority(NULL, NULL), 0);
28  assert_int_equal(pe__cmp_rsc_priority(&rsc1, &rsc2), 0);
29 }
30 
31 static void
32 rsc1_first(void **state)
33 {
34  rsc1.priv->priority = 1;
35  rsc2.priv->priority = 0;
36  assert_int_equal(pe__cmp_rsc_priority(&rsc1, NULL), -1);
37  assert_int_equal(pe__cmp_rsc_priority(&rsc1, &rsc2), -1);
38 }
39 
40 static void
41 rsc2_first(void **state)
42 {
43  rsc1.priv->priority = 0;
44  rsc2.priv->priority = 1;
45  assert_int_equal(pe__cmp_rsc_priority(NULL, &rsc2), 1);
46  assert_int_equal(pe__cmp_rsc_priority(&rsc1, &rsc2), 1);
47 }
48 
49 PCMK__UNIT_TEST(NULL, NULL,
50  cmocka_unit_test(rscs_equal),
51  cmocka_unit_test(rsc1_first),
52  cmocka_unit_test(rsc2_first))
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
pcmk__resource_private_t * priv
Definition: resources.h:61
G_GNUC_INTERNAL gint pe__cmp_rsc_priority(gconstpointer a, gconstpointer b)
Definition: utils.c:299