17assert_scan_nvpair(
const gchar *
input,
int expected_rc,
18 const gchar *expected_name,
const gchar *expected_value)
26 if (expected_name == NULL) {
29 assert_string_equal(
name, expected_name);
32 if (expected_value == NULL) {
35 assert_string_equal(value, expected_value);
43null_asserts(
void **state)
45 const gchar *
input =
"key=value";
55already_allocated_asserts(
void **state)
57 const gchar *
input =
"key=value";
58 gchar *buf_null = NULL;
59 gchar *buf_allocated = g_strdup(
"allocated string");
64 g_free(buf_allocated);
68empty_input(
void **state)
74equal_sign_only(
void **state)
80name_only(
void **state)
87value_only(
void **state)
95 assert_scan_nvpair(
"name=value",
pcmk_rc_ok,
"name",
"value");
98 assert_scan_nvpair(
"name=value\n\n",
pcmk_rc_ok,
"name",
"value");
99 assert_scan_nvpair(
"\nname=value\n",
pcmk_rc_ok,
"\nname",
"value");
100 assert_scan_nvpair(
"name\n=value\n",
pcmk_rc_ok,
"name\n",
"value");
101 assert_scan_nvpair(
"name=\nvalue\n",
pcmk_rc_ok,
"name",
"\nvalue");
102 assert_scan_nvpair(
"name=val\nue\n",
pcmk_rc_ok,
"name",
"val\nue");
105 assert_scan_nvpair(
" name=value",
pcmk_rc_ok,
" name",
"value");
106 assert_scan_nvpair(
"name =value",
pcmk_rc_ok,
"name ",
"value");
107 assert_scan_nvpair(
"name= value",
pcmk_rc_ok,
"name",
" value");
108 assert_scan_nvpair(
"name=value ",
pcmk_rc_ok,
"name",
"value ");
109 assert_scan_nvpair(
"name = value",
pcmk_rc_ok,
"name ",
" value");
112 assert_scan_nvpair(
"name=value=",
pcmk_rc_ok,
"name",
"value=");
113 assert_scan_nvpair(
"name=value=\n\n",
pcmk_rc_ok,
"name",
"value=");
114 assert_scan_nvpair(
"name=value=e",
pcmk_rc_ok,
"name",
"value=e");
115 assert_scan_nvpair(
"name=value=e\n\n",
pcmk_rc_ok,
"name",
"value=e");
118 assert_scan_nvpair(
"name='value'",
pcmk_rc_ok,
"name",
"'value'");
119 assert_scan_nvpair(
"'name'=value",
pcmk_rc_ok,
"'name'",
"value");
120 assert_scan_nvpair(
"'name=value'",
pcmk_rc_ok,
"'name",
"value'");
121 assert_scan_nvpair(
"name=\"value\"",
pcmk_rc_ok,
"name",
"\"value\"");
122 assert_scan_nvpair(
"\"name\"=value",
pcmk_rc_ok,
"\"name\"",
"value");
123 assert_scan_nvpair(
"\"name=value\"",
pcmk_rc_ok,
"\"name",
"value\"");
126 assert_scan_nvpair(
"!@#$%=^&*()",
pcmk_rc_ok,
"!@#$%",
"^&*()");
127 assert_scan_nvpair(
"name=$value",
pcmk_rc_ok,
"name",
"$value");
131 cmocka_unit_test(null_asserts),
132 cmocka_unit_test(already_allocated_asserts),
133 cmocka_unit_test(empty_input),
134 cmocka_unit_test(equal_sign_only),
135 cmocka_unit_test(name_only),
136 cmocka_unit_test(value_only),
137 cmocka_unit_test(valid))
int pcmk__scan_nvpair(const gchar *input, gchar **name, gchar **value)
#define pcmk__assert_asserts(stmt)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)