Coverage Report

Created: 2026-04-10 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/pacemaker/include/crm/common/strings_internal.h
Line
Count
Source
1
/*
2
 * Copyright 2015-2026 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
#ifndef PCMK__INCLUDED_CRM_COMMON_INTERNAL_H
11
#error "Include <crm/common/internal.h> instead of <strings_internal.h> directly"
12
#endif
13
14
#ifndef PCMK__CRM_COMMON_STRINGS_INTERNAL__H
15
#define PCMK__CRM_COMMON_STRINGS_INTERNAL__H
16
17
#include <stdbool.h>            // bool
18
#include <stdint.h>             // uint32_t, etc.
19
20
#include <glib.h>               // guint, GList, GHashTable
21
22
#include <crm/common/options.h> // PCMK_VALUE_TRUE, PCMK_VALUE_FALSE
23
#include <crm/common/results.h> // pcmk_rc_ok
24
25
#ifdef __cplusplus
26
extern "C" {
27
#endif
28
29
/* internal constants for generic string functions (from strings.c) */
30
31
1.34k
#define PCMK__PARSE_INT_DEFAULT -1
32
0
#define PCMK__PARSE_DBL_DEFAULT -1.0
33
34
/* internal generic string functions (from strings.c) */
35
36
enum pcmk__str_flags {
37
    pcmk__str_none          = 0,
38
    pcmk__str_casei         = (UINT32_C(1) << 0),
39
    pcmk__str_null_matches  = (UINT32_C(1) << 1),
40
    pcmk__str_regex         = (UINT32_C(1) << 2),
41
    pcmk__str_star_matches  = (UINT32_C(1) << 3),
42
};
43
44
int pcmk__scan_double(const char *text, double *result,
45
                      const char *default_text, char **end_text);
46
int pcmk__guint_from_hash(GHashTable *table, const char *key, guint default_val,
47
                          guint *result);
48
void pcmk__add_separated_word(GString **list, size_t init_size,
49
                              const char *word, const char *separator);
50
int pcmk__compress(const char *data, unsigned int length, unsigned int max,
51
                   char **result, unsigned int *result_len);
52
53
int pcmk__scan_ll(const char *text, long long *result, long long default_value);
54
int pcmk__scan_min_int(const char *text, int *result, int minimum);
55
int pcmk__scan_port(const char *text, int *port);
56
int pcmk__parse_bool(const char *input, bool *result);
57
int pcmk__parse_ll_range(const char *text, long long *start, long long *end);
58
int pcmk__parse_ms(const char *input, long long *result);
59
60
/*!
61
 * \internal
62
 * \brief Check whether a string parses to \c true
63
 *
64
 * \param[in] input  Input string
65
 *
66
 * \retval \c true   if \p input is not \c NULL and \c pcmk__parse_bool() parses
67
 *                   it to \c true
68
 * \retval \c false  otherwise
69
 */
70
static inline bool
71
pcmk__is_true(const char *input)
72
0
{
73
0
    bool result = false;
74
75
0
    return (input != NULL) && (pcmk__parse_bool(input, &result) == pcmk_rc_ok)
76
0
           && result;
77
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__is_true
Unexecuted instantiation: results.c:pcmk__is_true
Unexecuted instantiation: scores.c:pcmk__is_true
Unexecuted instantiation: strings.c:pcmk__is_true
Unexecuted instantiation: utils.c:pcmk__is_true
Unexecuted instantiation: iso8601.c:pcmk__is_true
Unexecuted instantiation: logging.c:pcmk__is_true
Unexecuted instantiation: mainloop.c:pcmk__is_true
Unexecuted instantiation: options.c:pcmk__is_true
Unexecuted instantiation: output.c:pcmk__is_true
Unexecuted instantiation: output_log.c:pcmk__is_true
Unexecuted instantiation: output_text.c:pcmk__is_true
Unexecuted instantiation: output_xml.c:pcmk__is_true
Unexecuted instantiation: patchset_display.c:pcmk__is_true
Unexecuted instantiation: schemas.c:pcmk__is_true
Unexecuted instantiation: xml.c:pcmk__is_true
Unexecuted instantiation: xml_attr.c:pcmk__is_true
Unexecuted instantiation: xml_comment.c:pcmk__is_true
Unexecuted instantiation: xml_display.c:pcmk__is_true
Unexecuted instantiation: xml_element.c:pcmk__is_true
Unexecuted instantiation: xml_idref.c:pcmk__is_true
Unexecuted instantiation: xml_io.c:pcmk__is_true
Unexecuted instantiation: xpath.c:pcmk__is_true
Unexecuted instantiation: acl.c:pcmk__is_true
Unexecuted instantiation: actions.c:pcmk__is_true
Unexecuted instantiation: agents.c:pcmk__is_true
Unexecuted instantiation: cmdline.c:pcmk__is_true
Unexecuted instantiation: digest.c:pcmk__is_true
Unexecuted instantiation: health.c:pcmk__is_true
Unexecuted instantiation: io.c:pcmk__is_true
Unexecuted instantiation: ipc_client.c:pcmk__is_true
Unexecuted instantiation: ipc_common.c:pcmk__is_true
Unexecuted instantiation: ipc_controld.c:pcmk__is_true
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__is_true
Unexecuted instantiation: ipc_schedulerd.c:pcmk__is_true
Unexecuted instantiation: ipc_server.c:pcmk__is_true
Unexecuted instantiation: messages.c:pcmk__is_true
Unexecuted instantiation: nodes.c:pcmk__is_true
Unexecuted instantiation: nvpair.c:pcmk__is_true
Unexecuted instantiation: options_display.c:pcmk__is_true
Unexecuted instantiation: patchset.c:pcmk__is_true
Unexecuted instantiation: procfs.c:pcmk__is_true
Unexecuted instantiation: rules.c:pcmk__is_true
Unexecuted instantiation: servers.c:pcmk__is_true
Unexecuted instantiation: cib.c:pcmk__is_true
Unexecuted instantiation: ipc_attrd.c:pcmk__is_true
Unexecuted instantiation: pid.c:pcmk__is_true
Unexecuted instantiation: attrs.c:pcmk__is_true
Unexecuted instantiation: strings_fuzzer.c:pcmk__is_true
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__is_true
Unexecuted instantiation: cib_client.c:pcmk__is_true
Unexecuted instantiation: cib_file.c:pcmk__is_true
Unexecuted instantiation: cib_native.c:pcmk__is_true
Unexecuted instantiation: cib_ops.c:pcmk__is_true
Unexecuted instantiation: cib_remote.c:pcmk__is_true
Unexecuted instantiation: cib_utils.c:pcmk__is_true
Unexecuted instantiation: remote.c:pcmk__is_true
Unexecuted instantiation: tls.c:pcmk__is_true
Unexecuted instantiation: watchdog.c:pcmk__is_true
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__is_true
78
79
GHashTable *pcmk__strkey_table(GDestroyNotify key_destroy_func,
80
                               GDestroyNotify value_destroy_func);
81
GHashTable *pcmk__strikey_table(GDestroyNotify key_destroy_func,
82
                                GDestroyNotify value_destroy_func);
83
GHashTable *pcmk__str_table_dup(GHashTable *old_table);
84
void pcmk__insert_dup(GHashTable *table, const char *name, const char *value);
85
86
/*!
87
 * \internal
88
 * \brief Get a string value with a default if NULL
89
 *
90
 * \param[in] s              String to return if non-NULL
91
 * \param[in] default_value  String (or NULL) to return if \p s is NULL
92
 *
93
 * \return \p s if \p s is non-NULL, otherwise \p default_value
94
 */
95
static inline const char *
96
pcmk__s(const char *s, const char *default_value)
97
0
{
98
0
    return (s == NULL)? default_value : s;
99
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__s
Unexecuted instantiation: results.c:pcmk__s
Unexecuted instantiation: scores.c:pcmk__s
Unexecuted instantiation: strings.c:pcmk__s
Unexecuted instantiation: utils.c:pcmk__s
Unexecuted instantiation: iso8601.c:pcmk__s
Unexecuted instantiation: logging.c:pcmk__s
Unexecuted instantiation: mainloop.c:pcmk__s
Unexecuted instantiation: options.c:pcmk__s
Unexecuted instantiation: output.c:pcmk__s
Unexecuted instantiation: output_log.c:pcmk__s
Unexecuted instantiation: output_text.c:pcmk__s
Unexecuted instantiation: output_xml.c:pcmk__s
Unexecuted instantiation: patchset_display.c:pcmk__s
Unexecuted instantiation: schemas.c:pcmk__s
Unexecuted instantiation: xml.c:pcmk__s
Unexecuted instantiation: xml_attr.c:pcmk__s
Unexecuted instantiation: xml_comment.c:pcmk__s
Unexecuted instantiation: xml_display.c:pcmk__s
Unexecuted instantiation: xml_element.c:pcmk__s
Unexecuted instantiation: xml_idref.c:pcmk__s
Unexecuted instantiation: xml_io.c:pcmk__s
Unexecuted instantiation: xpath.c:pcmk__s
Unexecuted instantiation: acl.c:pcmk__s
Unexecuted instantiation: actions.c:pcmk__s
Unexecuted instantiation: agents.c:pcmk__s
Unexecuted instantiation: cmdline.c:pcmk__s
Unexecuted instantiation: digest.c:pcmk__s
Unexecuted instantiation: health.c:pcmk__s
Unexecuted instantiation: io.c:pcmk__s
Unexecuted instantiation: ipc_client.c:pcmk__s
Unexecuted instantiation: ipc_common.c:pcmk__s
Unexecuted instantiation: ipc_controld.c:pcmk__s
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__s
Unexecuted instantiation: ipc_schedulerd.c:pcmk__s
Unexecuted instantiation: ipc_server.c:pcmk__s
Unexecuted instantiation: messages.c:pcmk__s
Unexecuted instantiation: nodes.c:pcmk__s
Unexecuted instantiation: nvpair.c:pcmk__s
Unexecuted instantiation: options_display.c:pcmk__s
Unexecuted instantiation: patchset.c:pcmk__s
Unexecuted instantiation: procfs.c:pcmk__s
Unexecuted instantiation: rules.c:pcmk__s
Unexecuted instantiation: servers.c:pcmk__s
Unexecuted instantiation: cib.c:pcmk__s
Unexecuted instantiation: ipc_attrd.c:pcmk__s
Unexecuted instantiation: pid.c:pcmk__s
Unexecuted instantiation: attrs.c:pcmk__s
Unexecuted instantiation: strings_fuzzer.c:pcmk__s
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__s
Unexecuted instantiation: cib_client.c:pcmk__s
Unexecuted instantiation: cib_file.c:pcmk__s
Unexecuted instantiation: cib_native.c:pcmk__s
Unexecuted instantiation: cib_ops.c:pcmk__s
Unexecuted instantiation: cib_remote.c:pcmk__s
Unexecuted instantiation: cib_utils.c:pcmk__s
Unexecuted instantiation: remote.c:pcmk__s
Unexecuted instantiation: tls.c:pcmk__s
Unexecuted instantiation: watchdog.c:pcmk__s
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__s
100
101
/*!
102
 * \internal
103
 * \brief Create a hash table with integer keys
104
 *
105
 * \param[in] value_destroy_func  Function to free a value
106
 *
107
 * \return Newly allocated hash table
108
 * \note It is the caller's responsibility to free the result, using
109
 *       g_hash_table_destroy().
110
 */
111
static inline GHashTable *
112
pcmk__intkey_table(GDestroyNotify value_destroy_func)
113
23
{
114
23
    return g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL,
115
23
                                 value_destroy_func);
116
23
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table
Unexecuted instantiation: results.c:pcmk__intkey_table
Unexecuted instantiation: scores.c:pcmk__intkey_table
Unexecuted instantiation: strings.c:pcmk__intkey_table
Unexecuted instantiation: utils.c:pcmk__intkey_table
Unexecuted instantiation: iso8601.c:pcmk__intkey_table
Unexecuted instantiation: logging.c:pcmk__intkey_table
Unexecuted instantiation: mainloop.c:pcmk__intkey_table
Unexecuted instantiation: options.c:pcmk__intkey_table
Unexecuted instantiation: output.c:pcmk__intkey_table
Unexecuted instantiation: output_log.c:pcmk__intkey_table
Unexecuted instantiation: output_text.c:pcmk__intkey_table
Unexecuted instantiation: output_xml.c:pcmk__intkey_table
Unexecuted instantiation: patchset_display.c:pcmk__intkey_table
Unexecuted instantiation: schemas.c:pcmk__intkey_table
Unexecuted instantiation: xml.c:pcmk__intkey_table
Unexecuted instantiation: xml_attr.c:pcmk__intkey_table
Unexecuted instantiation: xml_comment.c:pcmk__intkey_table
Unexecuted instantiation: xml_display.c:pcmk__intkey_table
Unexecuted instantiation: xml_element.c:pcmk__intkey_table
Unexecuted instantiation: xml_idref.c:pcmk__intkey_table
Unexecuted instantiation: xml_io.c:pcmk__intkey_table
Unexecuted instantiation: xpath.c:pcmk__intkey_table
Unexecuted instantiation: acl.c:pcmk__intkey_table
Unexecuted instantiation: actions.c:pcmk__intkey_table
Unexecuted instantiation: agents.c:pcmk__intkey_table
Unexecuted instantiation: cmdline.c:pcmk__intkey_table
Unexecuted instantiation: digest.c:pcmk__intkey_table
Unexecuted instantiation: health.c:pcmk__intkey_table
Unexecuted instantiation: io.c:pcmk__intkey_table
Unexecuted instantiation: ipc_client.c:pcmk__intkey_table
Unexecuted instantiation: ipc_common.c:pcmk__intkey_table
Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table
Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table
Unexecuted instantiation: ipc_server.c:pcmk__intkey_table
Unexecuted instantiation: messages.c:pcmk__intkey_table
Unexecuted instantiation: nodes.c:pcmk__intkey_table
Unexecuted instantiation: nvpair.c:pcmk__intkey_table
Unexecuted instantiation: options_display.c:pcmk__intkey_table
Unexecuted instantiation: patchset.c:pcmk__intkey_table
Unexecuted instantiation: procfs.c:pcmk__intkey_table
Unexecuted instantiation: rules.c:pcmk__intkey_table
Unexecuted instantiation: servers.c:pcmk__intkey_table
Unexecuted instantiation: cib.c:pcmk__intkey_table
Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table
Unexecuted instantiation: pid.c:pcmk__intkey_table
Unexecuted instantiation: attrs.c:pcmk__intkey_table
Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table
cib_client.c:pcmk__intkey_table
Line
Count
Source
113
23
{
114
    return g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL,
115
23
                                 value_destroy_func);
116
23
}
Unexecuted instantiation: cib_file.c:pcmk__intkey_table
Unexecuted instantiation: cib_native.c:pcmk__intkey_table
Unexecuted instantiation: cib_ops.c:pcmk__intkey_table
Unexecuted instantiation: cib_remote.c:pcmk__intkey_table
Unexecuted instantiation: cib_utils.c:pcmk__intkey_table
Unexecuted instantiation: remote.c:pcmk__intkey_table
Unexecuted instantiation: tls.c:pcmk__intkey_table
Unexecuted instantiation: watchdog.c:pcmk__intkey_table
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table
117
118
/*!
119
 * \internal
120
 * \brief Insert a value into a hash table with integer keys
121
 *
122
 * \param[in,out] hash_table  Table to insert into
123
 * \param[in]     key         Integer key to insert
124
 * \param[in]     value       Value to insert
125
 *
126
 * \return Whether the key/value was already in the table
127
 * \note This has the same semantics as g_hash_table_insert(). If the key
128
 *       already exists in the table, the old value is freed and replaced.
129
 */
130
static inline gboolean
131
pcmk__intkey_table_insert(GHashTable *hash_table, int key, gpointer value)
132
0
{
133
0
    return g_hash_table_insert(hash_table, GINT_TO_POINTER(key), value);
134
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_insert
Unexecuted instantiation: results.c:pcmk__intkey_table_insert
Unexecuted instantiation: scores.c:pcmk__intkey_table_insert
Unexecuted instantiation: strings.c:pcmk__intkey_table_insert
Unexecuted instantiation: utils.c:pcmk__intkey_table_insert
Unexecuted instantiation: iso8601.c:pcmk__intkey_table_insert
Unexecuted instantiation: logging.c:pcmk__intkey_table_insert
Unexecuted instantiation: mainloop.c:pcmk__intkey_table_insert
Unexecuted instantiation: options.c:pcmk__intkey_table_insert
Unexecuted instantiation: output.c:pcmk__intkey_table_insert
Unexecuted instantiation: output_log.c:pcmk__intkey_table_insert
Unexecuted instantiation: output_text.c:pcmk__intkey_table_insert
Unexecuted instantiation: output_xml.c:pcmk__intkey_table_insert
Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_insert
Unexecuted instantiation: schemas.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_display.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_element.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_insert
Unexecuted instantiation: xml_io.c:pcmk__intkey_table_insert
Unexecuted instantiation: xpath.c:pcmk__intkey_table_insert
Unexecuted instantiation: acl.c:pcmk__intkey_table_insert
Unexecuted instantiation: actions.c:pcmk__intkey_table_insert
Unexecuted instantiation: agents.c:pcmk__intkey_table_insert
Unexecuted instantiation: cmdline.c:pcmk__intkey_table_insert
Unexecuted instantiation: digest.c:pcmk__intkey_table_insert
Unexecuted instantiation: health.c:pcmk__intkey_table_insert
Unexecuted instantiation: io.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_insert
Unexecuted instantiation: messages.c:pcmk__intkey_table_insert
Unexecuted instantiation: nodes.c:pcmk__intkey_table_insert
Unexecuted instantiation: nvpair.c:pcmk__intkey_table_insert
Unexecuted instantiation: options_display.c:pcmk__intkey_table_insert
Unexecuted instantiation: patchset.c:pcmk__intkey_table_insert
Unexecuted instantiation: procfs.c:pcmk__intkey_table_insert
Unexecuted instantiation: rules.c:pcmk__intkey_table_insert
Unexecuted instantiation: servers.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib.c:pcmk__intkey_table_insert
Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_insert
Unexecuted instantiation: pid.c:pcmk__intkey_table_insert
Unexecuted instantiation: attrs.c:pcmk__intkey_table_insert
Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_client.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_file.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_native.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_insert
Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_insert
Unexecuted instantiation: remote.c:pcmk__intkey_table_insert
Unexecuted instantiation: tls.c:pcmk__intkey_table_insert
Unexecuted instantiation: watchdog.c:pcmk__intkey_table_insert
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_insert
135
136
/*!
137
 * \internal
138
 * \brief Look up a value in a hash table with integer keys
139
 *
140
 * \param[in] hash_table  Table to check
141
 * \param[in] key         Integer key to look for
142
 *
143
 * \return Value in table for \key (or NULL if not found)
144
 */
145
static inline gpointer
146
pcmk__intkey_table_lookup(GHashTable *hash_table, int key)
147
0
{
148
0
    return g_hash_table_lookup(hash_table, GINT_TO_POINTER(key));
149
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_lookup
Unexecuted instantiation: results.c:pcmk__intkey_table_lookup
Unexecuted instantiation: scores.c:pcmk__intkey_table_lookup
Unexecuted instantiation: strings.c:pcmk__intkey_table_lookup
Unexecuted instantiation: utils.c:pcmk__intkey_table_lookup
Unexecuted instantiation: iso8601.c:pcmk__intkey_table_lookup
Unexecuted instantiation: logging.c:pcmk__intkey_table_lookup
Unexecuted instantiation: mainloop.c:pcmk__intkey_table_lookup
Unexecuted instantiation: options.c:pcmk__intkey_table_lookup
Unexecuted instantiation: output.c:pcmk__intkey_table_lookup
Unexecuted instantiation: output_log.c:pcmk__intkey_table_lookup
Unexecuted instantiation: output_text.c:pcmk__intkey_table_lookup
Unexecuted instantiation: output_xml.c:pcmk__intkey_table_lookup
Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_lookup
Unexecuted instantiation: schemas.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_display.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_element.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xml_io.c:pcmk__intkey_table_lookup
Unexecuted instantiation: xpath.c:pcmk__intkey_table_lookup
Unexecuted instantiation: acl.c:pcmk__intkey_table_lookup
Unexecuted instantiation: actions.c:pcmk__intkey_table_lookup
Unexecuted instantiation: agents.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cmdline.c:pcmk__intkey_table_lookup
Unexecuted instantiation: digest.c:pcmk__intkey_table_lookup
Unexecuted instantiation: health.c:pcmk__intkey_table_lookup
Unexecuted instantiation: io.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_lookup
Unexecuted instantiation: messages.c:pcmk__intkey_table_lookup
Unexecuted instantiation: nodes.c:pcmk__intkey_table_lookup
Unexecuted instantiation: nvpair.c:pcmk__intkey_table_lookup
Unexecuted instantiation: options_display.c:pcmk__intkey_table_lookup
Unexecuted instantiation: patchset.c:pcmk__intkey_table_lookup
Unexecuted instantiation: procfs.c:pcmk__intkey_table_lookup
Unexecuted instantiation: rules.c:pcmk__intkey_table_lookup
Unexecuted instantiation: servers.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib.c:pcmk__intkey_table_lookup
Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_lookup
Unexecuted instantiation: pid.c:pcmk__intkey_table_lookup
Unexecuted instantiation: attrs.c:pcmk__intkey_table_lookup
Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_client.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_file.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_native.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_lookup
Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_lookup
Unexecuted instantiation: remote.c:pcmk__intkey_table_lookup
Unexecuted instantiation: tls.c:pcmk__intkey_table_lookup
Unexecuted instantiation: watchdog.c:pcmk__intkey_table_lookup
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_lookup
150
151
/*!
152
 * \internal
153
 * \brief Remove a key/value from a hash table with integer keys
154
 *
155
 * \param[in,out] hash_table  Table to modify
156
 * \param[in]     key         Integer key of entry to remove
157
 *
158
 * \return Whether \p key was found and removed from \p hash_table
159
 */
160
static inline gboolean
161
pcmk__intkey_table_remove(GHashTable *hash_table, int key)
162
0
{
163
0
    return g_hash_table_remove(hash_table, GINT_TO_POINTER(key));
164
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_remove
Unexecuted instantiation: results.c:pcmk__intkey_table_remove
Unexecuted instantiation: scores.c:pcmk__intkey_table_remove
Unexecuted instantiation: strings.c:pcmk__intkey_table_remove
Unexecuted instantiation: utils.c:pcmk__intkey_table_remove
Unexecuted instantiation: iso8601.c:pcmk__intkey_table_remove
Unexecuted instantiation: logging.c:pcmk__intkey_table_remove
Unexecuted instantiation: mainloop.c:pcmk__intkey_table_remove
Unexecuted instantiation: options.c:pcmk__intkey_table_remove
Unexecuted instantiation: output.c:pcmk__intkey_table_remove
Unexecuted instantiation: output_log.c:pcmk__intkey_table_remove
Unexecuted instantiation: output_text.c:pcmk__intkey_table_remove
Unexecuted instantiation: output_xml.c:pcmk__intkey_table_remove
Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_remove
Unexecuted instantiation: schemas.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_display.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_element.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_remove
Unexecuted instantiation: xml_io.c:pcmk__intkey_table_remove
Unexecuted instantiation: xpath.c:pcmk__intkey_table_remove
Unexecuted instantiation: acl.c:pcmk__intkey_table_remove
Unexecuted instantiation: actions.c:pcmk__intkey_table_remove
Unexecuted instantiation: agents.c:pcmk__intkey_table_remove
Unexecuted instantiation: cmdline.c:pcmk__intkey_table_remove
Unexecuted instantiation: digest.c:pcmk__intkey_table_remove
Unexecuted instantiation: health.c:pcmk__intkey_table_remove
Unexecuted instantiation: io.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_remove
Unexecuted instantiation: messages.c:pcmk__intkey_table_remove
Unexecuted instantiation: nodes.c:pcmk__intkey_table_remove
Unexecuted instantiation: nvpair.c:pcmk__intkey_table_remove
Unexecuted instantiation: options_display.c:pcmk__intkey_table_remove
Unexecuted instantiation: patchset.c:pcmk__intkey_table_remove
Unexecuted instantiation: procfs.c:pcmk__intkey_table_remove
Unexecuted instantiation: rules.c:pcmk__intkey_table_remove
Unexecuted instantiation: servers.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib.c:pcmk__intkey_table_remove
Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_remove
Unexecuted instantiation: pid.c:pcmk__intkey_table_remove
Unexecuted instantiation: attrs.c:pcmk__intkey_table_remove
Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_client.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_file.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_native.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_remove
Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_remove
Unexecuted instantiation: remote.c:pcmk__intkey_table_remove
Unexecuted instantiation: tls.c:pcmk__intkey_table_remove
Unexecuted instantiation: watchdog.c:pcmk__intkey_table_remove
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_remove
165
166
bool pcmk__str_in_list(const char *str, const GList *list, uint32_t flags);
167
bool pcmk__g_strv_contains(gchar **strv, const gchar *str);
168
169
bool pcmk__strcase_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED;
170
bool pcmk__str_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED;
171
bool pcmk__char_in_any_str(int ch, ...) G_GNUC_NULL_TERMINATED;
172
173
int pcmk__strcmp(const char *s1, const char *s2, uint32_t flags);
174
int pcmk__numeric_strcasecmp(const char *s1, const char *s2);
175
176
char *pcmk__str_copy_as(const char *file, const char *function, uint32_t line,
177
                        const char *str);
178
179
/*!
180
 * \internal
181
 * \brief Copy a string, asserting on failure
182
 *
183
 * \param[in] str  String to copy (can be \c NULL)
184
 *
185
 * \return Newly allocated copy of \p str, or \c NULL if \p str is \c NULL
186
 *
187
 * \note The caller is responsible for freeing the return value using \c free().
188
 */
189
5.45k
#define pcmk__str_copy(str) pcmk__str_copy_as(__FILE__, __func__, __LINE__, str)
190
191
void pcmk__str_update(char **str, const char *value);
192
193
char *pcmk__assert_asprintf(const char *format, ...) G_GNUC_PRINTF(1, 2);
194
195
void pcmk__g_strcat(GString *buffer, ...) G_GNUC_NULL_TERMINATED;
196
197
static inline bool
198
pcmk__str_eq(const char *s1, const char *s2, uint32_t flags)
199
527
{
200
527
    return pcmk__strcmp(s1, s2, flags) == 0;
201
527
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__str_eq
Unexecuted instantiation: results.c:pcmk__str_eq
scores.c:pcmk__str_eq
Line
Count
Source
199
176
{
200
176
    return pcmk__strcmp(s1, s2, flags) == 0;
201
176
}
strings.c:pcmk__str_eq
Line
Count
Source
199
351
{
200
351
    return pcmk__strcmp(s1, s2, flags) == 0;
201
351
}
Unexecuted instantiation: utils.c:pcmk__str_eq
Unexecuted instantiation: iso8601.c:pcmk__str_eq
Unexecuted instantiation: logging.c:pcmk__str_eq
Unexecuted instantiation: mainloop.c:pcmk__str_eq
Unexecuted instantiation: options.c:pcmk__str_eq
Unexecuted instantiation: output.c:pcmk__str_eq
Unexecuted instantiation: output_log.c:pcmk__str_eq
Unexecuted instantiation: output_text.c:pcmk__str_eq
Unexecuted instantiation: output_xml.c:pcmk__str_eq
Unexecuted instantiation: patchset_display.c:pcmk__str_eq
Unexecuted instantiation: schemas.c:pcmk__str_eq
Unexecuted instantiation: xml.c:pcmk__str_eq
Unexecuted instantiation: xml_attr.c:pcmk__str_eq
Unexecuted instantiation: xml_comment.c:pcmk__str_eq
Unexecuted instantiation: xml_display.c:pcmk__str_eq
Unexecuted instantiation: xml_element.c:pcmk__str_eq
Unexecuted instantiation: xml_idref.c:pcmk__str_eq
Unexecuted instantiation: xml_io.c:pcmk__str_eq
Unexecuted instantiation: xpath.c:pcmk__str_eq
Unexecuted instantiation: acl.c:pcmk__str_eq
Unexecuted instantiation: actions.c:pcmk__str_eq
Unexecuted instantiation: agents.c:pcmk__str_eq
Unexecuted instantiation: cmdline.c:pcmk__str_eq
Unexecuted instantiation: digest.c:pcmk__str_eq
Unexecuted instantiation: health.c:pcmk__str_eq
Unexecuted instantiation: io.c:pcmk__str_eq
Unexecuted instantiation: ipc_client.c:pcmk__str_eq
Unexecuted instantiation: ipc_common.c:pcmk__str_eq
Unexecuted instantiation: ipc_controld.c:pcmk__str_eq
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__str_eq
Unexecuted instantiation: ipc_schedulerd.c:pcmk__str_eq
Unexecuted instantiation: ipc_server.c:pcmk__str_eq
Unexecuted instantiation: messages.c:pcmk__str_eq
Unexecuted instantiation: nodes.c:pcmk__str_eq
Unexecuted instantiation: nvpair.c:pcmk__str_eq
Unexecuted instantiation: options_display.c:pcmk__str_eq
Unexecuted instantiation: patchset.c:pcmk__str_eq
Unexecuted instantiation: procfs.c:pcmk__str_eq
Unexecuted instantiation: rules.c:pcmk__str_eq
Unexecuted instantiation: servers.c:pcmk__str_eq
Unexecuted instantiation: cib.c:pcmk__str_eq
Unexecuted instantiation: ipc_attrd.c:pcmk__str_eq
Unexecuted instantiation: pid.c:pcmk__str_eq
Unexecuted instantiation: attrs.c:pcmk__str_eq
Unexecuted instantiation: strings_fuzzer.c:pcmk__str_eq
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__str_eq
Unexecuted instantiation: cib_client.c:pcmk__str_eq
Unexecuted instantiation: cib_file.c:pcmk__str_eq
Unexecuted instantiation: cib_native.c:pcmk__str_eq
Unexecuted instantiation: cib_ops.c:pcmk__str_eq
Unexecuted instantiation: cib_remote.c:pcmk__str_eq
Unexecuted instantiation: cib_utils.c:pcmk__str_eq
Unexecuted instantiation: remote.c:pcmk__str_eq
Unexecuted instantiation: tls.c:pcmk__str_eq
Unexecuted instantiation: watchdog.c:pcmk__str_eq
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__str_eq
202
203
// Like pcmk__add_separated_word() but using a space as separator
204
static inline void
205
pcmk__add_word(GString **list, size_t init_size, const char *word)
206
0
{
207
0
    return pcmk__add_separated_word(list, init_size, word, " ");
208
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__add_word
Unexecuted instantiation: results.c:pcmk__add_word
Unexecuted instantiation: scores.c:pcmk__add_word
Unexecuted instantiation: strings.c:pcmk__add_word
Unexecuted instantiation: utils.c:pcmk__add_word
Unexecuted instantiation: iso8601.c:pcmk__add_word
Unexecuted instantiation: logging.c:pcmk__add_word
Unexecuted instantiation: mainloop.c:pcmk__add_word
Unexecuted instantiation: options.c:pcmk__add_word
Unexecuted instantiation: output.c:pcmk__add_word
Unexecuted instantiation: output_log.c:pcmk__add_word
Unexecuted instantiation: output_text.c:pcmk__add_word
Unexecuted instantiation: output_xml.c:pcmk__add_word
Unexecuted instantiation: patchset_display.c:pcmk__add_word
Unexecuted instantiation: schemas.c:pcmk__add_word
Unexecuted instantiation: xml.c:pcmk__add_word
Unexecuted instantiation: xml_attr.c:pcmk__add_word
Unexecuted instantiation: xml_comment.c:pcmk__add_word
Unexecuted instantiation: xml_display.c:pcmk__add_word
Unexecuted instantiation: xml_element.c:pcmk__add_word
Unexecuted instantiation: xml_idref.c:pcmk__add_word
Unexecuted instantiation: xml_io.c:pcmk__add_word
Unexecuted instantiation: xpath.c:pcmk__add_word
Unexecuted instantiation: acl.c:pcmk__add_word
Unexecuted instantiation: actions.c:pcmk__add_word
Unexecuted instantiation: agents.c:pcmk__add_word
Unexecuted instantiation: cmdline.c:pcmk__add_word
Unexecuted instantiation: digest.c:pcmk__add_word
Unexecuted instantiation: health.c:pcmk__add_word
Unexecuted instantiation: io.c:pcmk__add_word
Unexecuted instantiation: ipc_client.c:pcmk__add_word
Unexecuted instantiation: ipc_common.c:pcmk__add_word
Unexecuted instantiation: ipc_controld.c:pcmk__add_word
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__add_word
Unexecuted instantiation: ipc_schedulerd.c:pcmk__add_word
Unexecuted instantiation: ipc_server.c:pcmk__add_word
Unexecuted instantiation: messages.c:pcmk__add_word
Unexecuted instantiation: nodes.c:pcmk__add_word
Unexecuted instantiation: nvpair.c:pcmk__add_word
Unexecuted instantiation: options_display.c:pcmk__add_word
Unexecuted instantiation: patchset.c:pcmk__add_word
Unexecuted instantiation: procfs.c:pcmk__add_word
Unexecuted instantiation: rules.c:pcmk__add_word
Unexecuted instantiation: servers.c:pcmk__add_word
Unexecuted instantiation: cib.c:pcmk__add_word
Unexecuted instantiation: ipc_attrd.c:pcmk__add_word
Unexecuted instantiation: pid.c:pcmk__add_word
Unexecuted instantiation: attrs.c:pcmk__add_word
Unexecuted instantiation: strings_fuzzer.c:pcmk__add_word
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__add_word
Unexecuted instantiation: cib_client.c:pcmk__add_word
Unexecuted instantiation: cib_file.c:pcmk__add_word
Unexecuted instantiation: cib_native.c:pcmk__add_word
Unexecuted instantiation: cib_ops.c:pcmk__add_word
Unexecuted instantiation: cib_remote.c:pcmk__add_word
Unexecuted instantiation: cib_utils.c:pcmk__add_word
Unexecuted instantiation: remote.c:pcmk__add_word
Unexecuted instantiation: tls.c:pcmk__add_word
Unexecuted instantiation: watchdog.c:pcmk__add_word
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__add_word
209
210
/* Correctly displaying singular or plural is complicated; consider "1 node has"
211
 * vs. "2 nodes have". A flexible solution is to pluralize entire strings, e.g.
212
 *
213
 * if (a == 1) {
214
 *     pcmk__info("singular message"):
215
 * } else {
216
 *     pcmk__info("plural message");
217
 * }
218
 *
219
 * though even that's not sufficient for all languages besides English (if we
220
 * ever desire to do translations of output and log messages). But the following
221
 * convenience macros are "good enough" and more concise for many cases.
222
 */
223
224
/* Example:
225
 * pcmk__info("Found %d %s", nentries,
226
 *            pcmk__plural_alt(nentries, "entry", "entries"));
227
 */
228
0
#define pcmk__plural_alt(i, s1, s2) (((i) == 1)? (s1) : (s2))
229
230
// Example: pcmk__info("Found %d node%s", nnodes, pcmk__plural_s(nnodes));
231
0
#define pcmk__plural_s(i) pcmk__plural_alt(i, "", "s")
232
233
static inline int
234
pcmk__str_empty(const char *s)
235
6.74k
{
236
6.74k
    return (s == NULL) || (s[0] == '\0');
237
6.74k
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__str_empty
Unexecuted instantiation: results.c:pcmk__str_empty
Unexecuted instantiation: scores.c:pcmk__str_empty
Unexecuted instantiation: strings.c:pcmk__str_empty
Unexecuted instantiation: utils.c:pcmk__str_empty
iso8601.c:pcmk__str_empty
Line
Count
Source
235
6.74k
{
236
6.74k
    return (s == NULL) || (s[0] == '\0');
237
6.74k
}
Unexecuted instantiation: logging.c:pcmk__str_empty
Unexecuted instantiation: mainloop.c:pcmk__str_empty
Unexecuted instantiation: options.c:pcmk__str_empty
Unexecuted instantiation: output.c:pcmk__str_empty
Unexecuted instantiation: output_log.c:pcmk__str_empty
Unexecuted instantiation: output_text.c:pcmk__str_empty
Unexecuted instantiation: output_xml.c:pcmk__str_empty
Unexecuted instantiation: patchset_display.c:pcmk__str_empty
Unexecuted instantiation: schemas.c:pcmk__str_empty
Unexecuted instantiation: xml.c:pcmk__str_empty
Unexecuted instantiation: xml_attr.c:pcmk__str_empty
Unexecuted instantiation: xml_comment.c:pcmk__str_empty
Unexecuted instantiation: xml_display.c:pcmk__str_empty
Unexecuted instantiation: xml_element.c:pcmk__str_empty
Unexecuted instantiation: xml_idref.c:pcmk__str_empty
Unexecuted instantiation: xml_io.c:pcmk__str_empty
Unexecuted instantiation: xpath.c:pcmk__str_empty
Unexecuted instantiation: acl.c:pcmk__str_empty
Unexecuted instantiation: actions.c:pcmk__str_empty
Unexecuted instantiation: agents.c:pcmk__str_empty
Unexecuted instantiation: cmdline.c:pcmk__str_empty
Unexecuted instantiation: digest.c:pcmk__str_empty
Unexecuted instantiation: health.c:pcmk__str_empty
Unexecuted instantiation: io.c:pcmk__str_empty
Unexecuted instantiation: ipc_client.c:pcmk__str_empty
Unexecuted instantiation: ipc_common.c:pcmk__str_empty
Unexecuted instantiation: ipc_controld.c:pcmk__str_empty
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__str_empty
Unexecuted instantiation: ipc_schedulerd.c:pcmk__str_empty
Unexecuted instantiation: ipc_server.c:pcmk__str_empty
Unexecuted instantiation: messages.c:pcmk__str_empty
Unexecuted instantiation: nodes.c:pcmk__str_empty
Unexecuted instantiation: nvpair.c:pcmk__str_empty
Unexecuted instantiation: options_display.c:pcmk__str_empty
Unexecuted instantiation: patchset.c:pcmk__str_empty
Unexecuted instantiation: procfs.c:pcmk__str_empty
Unexecuted instantiation: rules.c:pcmk__str_empty
Unexecuted instantiation: servers.c:pcmk__str_empty
Unexecuted instantiation: cib.c:pcmk__str_empty
Unexecuted instantiation: ipc_attrd.c:pcmk__str_empty
Unexecuted instantiation: pid.c:pcmk__str_empty
Unexecuted instantiation: attrs.c:pcmk__str_empty
Unexecuted instantiation: strings_fuzzer.c:pcmk__str_empty
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__str_empty
Unexecuted instantiation: cib_client.c:pcmk__str_empty
Unexecuted instantiation: cib_file.c:pcmk__str_empty
Unexecuted instantiation: cib_native.c:pcmk__str_empty
Unexecuted instantiation: cib_ops.c:pcmk__str_empty
Unexecuted instantiation: cib_remote.c:pcmk__str_empty
Unexecuted instantiation: cib_utils.c:pcmk__str_empty
Unexecuted instantiation: remote.c:pcmk__str_empty
Unexecuted instantiation: tls.c:pcmk__str_empty
Unexecuted instantiation: watchdog.c:pcmk__str_empty
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__str_empty
238
239
static inline char *
240
pcmk__itoa(int an_int)
241
0
{
242
0
    return pcmk__assert_asprintf("%d", an_int);
243
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__itoa
Unexecuted instantiation: results.c:pcmk__itoa
Unexecuted instantiation: scores.c:pcmk__itoa
Unexecuted instantiation: strings.c:pcmk__itoa
Unexecuted instantiation: utils.c:pcmk__itoa
Unexecuted instantiation: iso8601.c:pcmk__itoa
Unexecuted instantiation: logging.c:pcmk__itoa
Unexecuted instantiation: mainloop.c:pcmk__itoa
Unexecuted instantiation: options.c:pcmk__itoa
Unexecuted instantiation: output.c:pcmk__itoa
Unexecuted instantiation: output_log.c:pcmk__itoa
Unexecuted instantiation: output_text.c:pcmk__itoa
Unexecuted instantiation: output_xml.c:pcmk__itoa
Unexecuted instantiation: patchset_display.c:pcmk__itoa
Unexecuted instantiation: schemas.c:pcmk__itoa
Unexecuted instantiation: xml.c:pcmk__itoa
Unexecuted instantiation: xml_attr.c:pcmk__itoa
Unexecuted instantiation: xml_comment.c:pcmk__itoa
Unexecuted instantiation: xml_display.c:pcmk__itoa
Unexecuted instantiation: xml_element.c:pcmk__itoa
Unexecuted instantiation: xml_idref.c:pcmk__itoa
Unexecuted instantiation: xml_io.c:pcmk__itoa
Unexecuted instantiation: xpath.c:pcmk__itoa
Unexecuted instantiation: acl.c:pcmk__itoa
Unexecuted instantiation: actions.c:pcmk__itoa
Unexecuted instantiation: agents.c:pcmk__itoa
Unexecuted instantiation: cmdline.c:pcmk__itoa
Unexecuted instantiation: digest.c:pcmk__itoa
Unexecuted instantiation: health.c:pcmk__itoa
Unexecuted instantiation: io.c:pcmk__itoa
Unexecuted instantiation: ipc_client.c:pcmk__itoa
Unexecuted instantiation: ipc_common.c:pcmk__itoa
Unexecuted instantiation: ipc_controld.c:pcmk__itoa
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__itoa
Unexecuted instantiation: ipc_schedulerd.c:pcmk__itoa
Unexecuted instantiation: ipc_server.c:pcmk__itoa
Unexecuted instantiation: messages.c:pcmk__itoa
Unexecuted instantiation: nodes.c:pcmk__itoa
Unexecuted instantiation: nvpair.c:pcmk__itoa
Unexecuted instantiation: options_display.c:pcmk__itoa
Unexecuted instantiation: patchset.c:pcmk__itoa
Unexecuted instantiation: procfs.c:pcmk__itoa
Unexecuted instantiation: rules.c:pcmk__itoa
Unexecuted instantiation: servers.c:pcmk__itoa
Unexecuted instantiation: cib.c:pcmk__itoa
Unexecuted instantiation: ipc_attrd.c:pcmk__itoa
Unexecuted instantiation: pid.c:pcmk__itoa
Unexecuted instantiation: attrs.c:pcmk__itoa
Unexecuted instantiation: strings_fuzzer.c:pcmk__itoa
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__itoa
Unexecuted instantiation: cib_client.c:pcmk__itoa
Unexecuted instantiation: cib_file.c:pcmk__itoa
Unexecuted instantiation: cib_native.c:pcmk__itoa
Unexecuted instantiation: cib_ops.c:pcmk__itoa
Unexecuted instantiation: cib_remote.c:pcmk__itoa
Unexecuted instantiation: cib_utils.c:pcmk__itoa
Unexecuted instantiation: remote.c:pcmk__itoa
Unexecuted instantiation: tls.c:pcmk__itoa
Unexecuted instantiation: watchdog.c:pcmk__itoa
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__itoa
244
245
static inline char *
246
pcmk__ftoa(double a_float)
247
0
{
248
0
    return pcmk__assert_asprintf("%f", a_float);
249
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__ftoa
Unexecuted instantiation: results.c:pcmk__ftoa
Unexecuted instantiation: scores.c:pcmk__ftoa
Unexecuted instantiation: strings.c:pcmk__ftoa
Unexecuted instantiation: utils.c:pcmk__ftoa
Unexecuted instantiation: iso8601.c:pcmk__ftoa
Unexecuted instantiation: logging.c:pcmk__ftoa
Unexecuted instantiation: mainloop.c:pcmk__ftoa
Unexecuted instantiation: options.c:pcmk__ftoa
Unexecuted instantiation: output.c:pcmk__ftoa
Unexecuted instantiation: output_log.c:pcmk__ftoa
Unexecuted instantiation: output_text.c:pcmk__ftoa
Unexecuted instantiation: output_xml.c:pcmk__ftoa
Unexecuted instantiation: patchset_display.c:pcmk__ftoa
Unexecuted instantiation: schemas.c:pcmk__ftoa
Unexecuted instantiation: xml.c:pcmk__ftoa
Unexecuted instantiation: xml_attr.c:pcmk__ftoa
Unexecuted instantiation: xml_comment.c:pcmk__ftoa
Unexecuted instantiation: xml_display.c:pcmk__ftoa
Unexecuted instantiation: xml_element.c:pcmk__ftoa
Unexecuted instantiation: xml_idref.c:pcmk__ftoa
Unexecuted instantiation: xml_io.c:pcmk__ftoa
Unexecuted instantiation: xpath.c:pcmk__ftoa
Unexecuted instantiation: acl.c:pcmk__ftoa
Unexecuted instantiation: actions.c:pcmk__ftoa
Unexecuted instantiation: agents.c:pcmk__ftoa
Unexecuted instantiation: cmdline.c:pcmk__ftoa
Unexecuted instantiation: digest.c:pcmk__ftoa
Unexecuted instantiation: health.c:pcmk__ftoa
Unexecuted instantiation: io.c:pcmk__ftoa
Unexecuted instantiation: ipc_client.c:pcmk__ftoa
Unexecuted instantiation: ipc_common.c:pcmk__ftoa
Unexecuted instantiation: ipc_controld.c:pcmk__ftoa
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__ftoa
Unexecuted instantiation: ipc_schedulerd.c:pcmk__ftoa
Unexecuted instantiation: ipc_server.c:pcmk__ftoa
Unexecuted instantiation: messages.c:pcmk__ftoa
Unexecuted instantiation: nodes.c:pcmk__ftoa
Unexecuted instantiation: nvpair.c:pcmk__ftoa
Unexecuted instantiation: options_display.c:pcmk__ftoa
Unexecuted instantiation: patchset.c:pcmk__ftoa
Unexecuted instantiation: procfs.c:pcmk__ftoa
Unexecuted instantiation: rules.c:pcmk__ftoa
Unexecuted instantiation: servers.c:pcmk__ftoa
Unexecuted instantiation: cib.c:pcmk__ftoa
Unexecuted instantiation: ipc_attrd.c:pcmk__ftoa
Unexecuted instantiation: pid.c:pcmk__ftoa
Unexecuted instantiation: attrs.c:pcmk__ftoa
Unexecuted instantiation: strings_fuzzer.c:pcmk__ftoa
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__ftoa
Unexecuted instantiation: cib_client.c:pcmk__ftoa
Unexecuted instantiation: cib_file.c:pcmk__ftoa
Unexecuted instantiation: cib_native.c:pcmk__ftoa
Unexecuted instantiation: cib_ops.c:pcmk__ftoa
Unexecuted instantiation: cib_remote.c:pcmk__ftoa
Unexecuted instantiation: cib_utils.c:pcmk__ftoa
Unexecuted instantiation: remote.c:pcmk__ftoa
Unexecuted instantiation: tls.c:pcmk__ftoa
Unexecuted instantiation: watchdog.c:pcmk__ftoa
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__ftoa
250
251
static inline char *
252
pcmk__ttoa(time_t epoch_time)
253
0
{
254
0
    return pcmk__assert_asprintf("%lld", (long long) epoch_time);
255
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__ttoa
Unexecuted instantiation: results.c:pcmk__ttoa
Unexecuted instantiation: scores.c:pcmk__ttoa
Unexecuted instantiation: strings.c:pcmk__ttoa
Unexecuted instantiation: utils.c:pcmk__ttoa
Unexecuted instantiation: iso8601.c:pcmk__ttoa
Unexecuted instantiation: logging.c:pcmk__ttoa
Unexecuted instantiation: mainloop.c:pcmk__ttoa
Unexecuted instantiation: options.c:pcmk__ttoa
Unexecuted instantiation: output.c:pcmk__ttoa
Unexecuted instantiation: output_log.c:pcmk__ttoa
Unexecuted instantiation: output_text.c:pcmk__ttoa
Unexecuted instantiation: output_xml.c:pcmk__ttoa
Unexecuted instantiation: patchset_display.c:pcmk__ttoa
Unexecuted instantiation: schemas.c:pcmk__ttoa
Unexecuted instantiation: xml.c:pcmk__ttoa
Unexecuted instantiation: xml_attr.c:pcmk__ttoa
Unexecuted instantiation: xml_comment.c:pcmk__ttoa
Unexecuted instantiation: xml_display.c:pcmk__ttoa
Unexecuted instantiation: xml_element.c:pcmk__ttoa
Unexecuted instantiation: xml_idref.c:pcmk__ttoa
Unexecuted instantiation: xml_io.c:pcmk__ttoa
Unexecuted instantiation: xpath.c:pcmk__ttoa
Unexecuted instantiation: acl.c:pcmk__ttoa
Unexecuted instantiation: actions.c:pcmk__ttoa
Unexecuted instantiation: agents.c:pcmk__ttoa
Unexecuted instantiation: cmdline.c:pcmk__ttoa
Unexecuted instantiation: digest.c:pcmk__ttoa
Unexecuted instantiation: health.c:pcmk__ttoa
Unexecuted instantiation: io.c:pcmk__ttoa
Unexecuted instantiation: ipc_client.c:pcmk__ttoa
Unexecuted instantiation: ipc_common.c:pcmk__ttoa
Unexecuted instantiation: ipc_controld.c:pcmk__ttoa
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__ttoa
Unexecuted instantiation: ipc_schedulerd.c:pcmk__ttoa
Unexecuted instantiation: ipc_server.c:pcmk__ttoa
Unexecuted instantiation: messages.c:pcmk__ttoa
Unexecuted instantiation: nodes.c:pcmk__ttoa
Unexecuted instantiation: nvpair.c:pcmk__ttoa
Unexecuted instantiation: options_display.c:pcmk__ttoa
Unexecuted instantiation: patchset.c:pcmk__ttoa
Unexecuted instantiation: procfs.c:pcmk__ttoa
Unexecuted instantiation: rules.c:pcmk__ttoa
Unexecuted instantiation: servers.c:pcmk__ttoa
Unexecuted instantiation: cib.c:pcmk__ttoa
Unexecuted instantiation: ipc_attrd.c:pcmk__ttoa
Unexecuted instantiation: pid.c:pcmk__ttoa
Unexecuted instantiation: attrs.c:pcmk__ttoa
Unexecuted instantiation: strings_fuzzer.c:pcmk__ttoa
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__ttoa
Unexecuted instantiation: cib_client.c:pcmk__ttoa
Unexecuted instantiation: cib_file.c:pcmk__ttoa
Unexecuted instantiation: cib_native.c:pcmk__ttoa
Unexecuted instantiation: cib_ops.c:pcmk__ttoa
Unexecuted instantiation: cib_remote.c:pcmk__ttoa
Unexecuted instantiation: cib_utils.c:pcmk__ttoa
Unexecuted instantiation: remote.c:pcmk__ttoa
Unexecuted instantiation: tls.c:pcmk__ttoa
Unexecuted instantiation: watchdog.c:pcmk__ttoa
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__ttoa
256
257
// note this returns const not allocated
258
static inline const char *
259
pcmk__btoa(bool condition)
260
0
{
261
0
    return condition? PCMK_VALUE_TRUE : PCMK_VALUE_FALSE;
262
0
}
Unexecuted instantiation: scores_fuzzer.c:pcmk__btoa
Unexecuted instantiation: results.c:pcmk__btoa
Unexecuted instantiation: scores.c:pcmk__btoa
Unexecuted instantiation: strings.c:pcmk__btoa
Unexecuted instantiation: utils.c:pcmk__btoa
Unexecuted instantiation: iso8601.c:pcmk__btoa
Unexecuted instantiation: logging.c:pcmk__btoa
Unexecuted instantiation: mainloop.c:pcmk__btoa
Unexecuted instantiation: options.c:pcmk__btoa
Unexecuted instantiation: output.c:pcmk__btoa
Unexecuted instantiation: output_log.c:pcmk__btoa
Unexecuted instantiation: output_text.c:pcmk__btoa
Unexecuted instantiation: output_xml.c:pcmk__btoa
Unexecuted instantiation: patchset_display.c:pcmk__btoa
Unexecuted instantiation: schemas.c:pcmk__btoa
Unexecuted instantiation: xml.c:pcmk__btoa
Unexecuted instantiation: xml_attr.c:pcmk__btoa
Unexecuted instantiation: xml_comment.c:pcmk__btoa
Unexecuted instantiation: xml_display.c:pcmk__btoa
Unexecuted instantiation: xml_element.c:pcmk__btoa
Unexecuted instantiation: xml_idref.c:pcmk__btoa
Unexecuted instantiation: xml_io.c:pcmk__btoa
Unexecuted instantiation: xpath.c:pcmk__btoa
Unexecuted instantiation: acl.c:pcmk__btoa
Unexecuted instantiation: actions.c:pcmk__btoa
Unexecuted instantiation: agents.c:pcmk__btoa
Unexecuted instantiation: cmdline.c:pcmk__btoa
Unexecuted instantiation: digest.c:pcmk__btoa
Unexecuted instantiation: health.c:pcmk__btoa
Unexecuted instantiation: io.c:pcmk__btoa
Unexecuted instantiation: ipc_client.c:pcmk__btoa
Unexecuted instantiation: ipc_common.c:pcmk__btoa
Unexecuted instantiation: ipc_controld.c:pcmk__btoa
Unexecuted instantiation: ipc_pacemakerd.c:pcmk__btoa
Unexecuted instantiation: ipc_schedulerd.c:pcmk__btoa
Unexecuted instantiation: ipc_server.c:pcmk__btoa
Unexecuted instantiation: messages.c:pcmk__btoa
Unexecuted instantiation: nodes.c:pcmk__btoa
Unexecuted instantiation: nvpair.c:pcmk__btoa
Unexecuted instantiation: options_display.c:pcmk__btoa
Unexecuted instantiation: patchset.c:pcmk__btoa
Unexecuted instantiation: procfs.c:pcmk__btoa
Unexecuted instantiation: rules.c:pcmk__btoa
Unexecuted instantiation: servers.c:pcmk__btoa
Unexecuted instantiation: cib.c:pcmk__btoa
Unexecuted instantiation: ipc_attrd.c:pcmk__btoa
Unexecuted instantiation: pid.c:pcmk__btoa
Unexecuted instantiation: attrs.c:pcmk__btoa
Unexecuted instantiation: strings_fuzzer.c:pcmk__btoa
Unexecuted instantiation: cib_file_fuzzer.c:pcmk__btoa
Unexecuted instantiation: cib_client.c:pcmk__btoa
Unexecuted instantiation: cib_file.c:pcmk__btoa
Unexecuted instantiation: cib_native.c:pcmk__btoa
Unexecuted instantiation: cib_ops.c:pcmk__btoa
Unexecuted instantiation: cib_remote.c:pcmk__btoa
Unexecuted instantiation: cib_utils.c:pcmk__btoa
Unexecuted instantiation: remote.c:pcmk__btoa
Unexecuted instantiation: tls.c:pcmk__btoa
Unexecuted instantiation: watchdog.c:pcmk__btoa
Unexecuted instantiation: iso8601_fuzzer.c:pcmk__btoa
263
264
#ifdef __cplusplus
265
}
266
#endif
267
268
#endif // PCMK__CRM_COMMON_STRINGS_INTERNAL__H