pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pcmk__env_option_enabled_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2022-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>
12
13#include "mock_private.h"
14
15static void
16disabled_null_value(void **state)
17{
18 // Return false if option value not found (NULL accomplishes this)
19 assert_false(pcmk__env_option_enabled(NULL, NULL));
21}
22
23static void
24enabled_true_value(void **state)
25{
26 // Return true if option value is true, with or without daemon name
27 pcmk__mock_getenv = true;
28
29 expect_string(__wrap_getenv, name, "PCMK_env_var");
30 will_return(__wrap_getenv, "true");
31 assert_true(pcmk__env_option_enabled(NULL, "env_var"));
32
33 expect_string(__wrap_getenv, name, "PCMK_env_var");
34 will_return(__wrap_getenv, "true");
35 assert_true(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
36
37 pcmk__mock_getenv = false;
38}
39
40static void
41disabled_false_value(void **state)
42{
43 // Return false if option value is false (no daemon list)
44 pcmk__mock_getenv = true;
45
46 expect_string(__wrap_getenv, name, "PCMK_env_var");
47 will_return(__wrap_getenv, "false");
48 assert_false(pcmk__env_option_enabled(NULL, "env_var"));
49
50 expect_string(__wrap_getenv, name, "PCMK_env_var");
51 will_return(__wrap_getenv, "false");
52 assert_false(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
53
54 pcmk__mock_getenv = false;
55}
56
57static void
58enabled_daemon_in_list(void **state)
59{
60 // Return true if daemon is in the option's value
61 pcmk__mock_getenv = true;
62
63 expect_string(__wrap_getenv, name, "PCMK_env_var");
65 assert_true(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
66
67 expect_string(__wrap_getenv, name, "PCMK_env_var");
69 assert_true(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
70
71 expect_string(__wrap_getenv, name, "PCMK_env_var");
73 assert_true(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
74
75 expect_string(__wrap_getenv, name, "PCMK_env_var");
76 will_return(__wrap_getenv,
79 assert_true(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
80
81 pcmk__mock_getenv = false;
82}
83
84static void
85disabled_daemon_not_in_list(void **state)
86{
87 // Return false if value is not true and daemon is not in the option's value
88 pcmk__mock_getenv = true;
89
90 expect_string(__wrap_getenv, name, "PCMK_env_var");
92 assert_false(pcmk__env_option_enabled(PCMK__SERVER_EXECD, "env_var"));
93
94 pcmk__mock_getenv = false;
95}
96
97PCMK__UNIT_TEST(NULL, NULL,
98 cmocka_unit_test(disabled_null_value),
99 cmocka_unit_test(enabled_true_value),
100 cmocka_unit_test(disabled_false_value),
101 cmocka_unit_test(enabled_daemon_in_list),
102 cmocka_unit_test(disabled_daemon_not_in_list))
const char * name
Definition cib.c:26
bool pcmk__mock_getenv
Definition mock.c:114
char * __wrap_getenv(const char *name)
Definition mock.c:117
bool pcmk__env_option_enabled(const char *daemon, const char *option)
Definition options.c:1192
#define PCMK__SERVER_EXECD
#define PCMK__SERVER_FENCED
#define PCMK__SERVER_CONTROLD
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)