This source file includes following definitions.
- basic
- colon_in_rsc
- dashes_in_rsc
- migrate_to_from
- pre_post
- skip_rsc
- skip_ty
- skip_ms
- empty_input
- malformed_input
- main
1
2
3
4
5
6
7
8
9
10 #include <crm_internal.h>
11
12 #include <stdio.h>
13 #include <glib.h>
14
15 static void
16 basic(void)
17 {
18 char *rsc = NULL;
19 char *ty = NULL;
20 guint ms = 0;
21
22 g_assert_true(parse_op_key("Fencing_monitor_60000", &rsc, &ty, &ms));
23 g_assert_cmpstr(rsc, ==, "Fencing");
24 g_assert_cmpstr(ty, ==, "monitor");
25 g_assert_cmpint(ms, ==, 60000);
26 free(rsc);
27 free(ty);
28 }
29
30 static void
31 colon_in_rsc(void)
32 {
33 char *rsc = NULL;
34 char *ty = NULL;
35 guint ms = 0;
36
37 g_assert_true(parse_op_key("ClusterIP:0_start_0", &rsc, &ty, &ms));
38 g_assert_cmpstr(rsc, ==, "ClusterIP:0");
39 g_assert_cmpstr(ty, ==, "start");
40 g_assert_cmpint(ms, ==, 0);
41 free(rsc);
42 free(ty);
43
44 g_assert_true(parse_op_key("imagestoreclone:1_post_notify_stop_0", &rsc, &ty, &ms));
45 g_assert_cmpstr(rsc, ==, "imagestoreclone:1");
46 g_assert_cmpstr(ty, ==, "post_notify_stop");
47 g_assert_cmpint(ms, ==, 0);
48 free(rsc);
49 free(ty);
50 }
51
52 static void
53 dashes_in_rsc(void)
54 {
55 char *rsc = NULL;
56 char *ty = NULL;
57 guint ms = 0;
58
59 g_assert_true(parse_op_key("httpd-bundle-0_monitor_30000", &rsc, &ty, &ms));
60 g_assert_cmpstr(rsc, ==, "httpd-bundle-0");
61 g_assert_cmpstr(ty, ==, "monitor");
62 g_assert_cmpint(ms, ==, 30000);
63 free(rsc);
64 free(ty);
65
66 g_assert_true(parse_op_key("httpd-bundle-ip-192.168.122.132_start_0", &rsc, &ty, &ms));
67 g_assert_cmpstr(rsc, ==, "httpd-bundle-ip-192.168.122.132");
68 g_assert_cmpstr(ty, ==, "start");
69 g_assert_cmpint(ms, ==, 0);
70 free(rsc);
71 free(ty);
72 }
73
74 static void
75 migrate_to_from(void)
76 {
77 char *rsc = NULL;
78 char *ty = NULL;
79 guint ms = 0;
80
81 g_assert_true(parse_op_key("vm_migrate_from_0", &rsc, &ty, &ms));
82 g_assert_cmpstr(rsc, ==, "vm");
83 g_assert_cmpstr(ty, ==, "migrate_from");
84 g_assert_cmpint(ms, ==, 0);
85 free(rsc);
86 free(ty);
87
88 g_assert_true(parse_op_key("vm_migrate_to_0", &rsc, &ty, &ms));
89 g_assert_cmpstr(rsc, ==, "vm");
90 g_assert_cmpstr(ty, ==, "migrate_to");
91 g_assert_cmpint(ms, ==, 0);
92 free(rsc);
93 free(ty);
94
95 g_assert_true(parse_op_key("vm_idcc_devel_migrate_to_0", &rsc, &ty, &ms));
96 g_assert_cmpstr(rsc, ==, "vm_idcc_devel");
97 g_assert_cmpstr(ty, ==, "migrate_to");
98 g_assert_cmpint(ms, ==, 0);
99 free(rsc);
100 free(ty);
101 }
102
103 static void
104 pre_post(void)
105 {
106 char *rsc = NULL;
107 char *ty = NULL;
108 guint ms = 0;
109
110 g_assert_true(parse_op_key("rsc_drbd_7788:1_post_notify_start_0", &rsc, &ty, &ms));
111 g_assert_cmpstr(rsc, ==, "rsc_drbd_7788:1");
112 g_assert_cmpstr(ty, ==, "post_notify_start");
113 g_assert_cmpint(ms, ==, 0);
114 free(rsc);
115 free(ty);
116
117 g_assert_true(parse_op_key("rabbitmq-bundle-clone_pre_notify_stop_0", &rsc, &ty, &ms));
118 g_assert_cmpstr(rsc, ==, "rabbitmq-bundle-clone");
119 g_assert_cmpstr(ty, ==, "pre_notify_stop");
120 g_assert_cmpint(ms, ==, 0);
121 free(rsc);
122 free(ty);
123
124 g_assert_true(parse_op_key("post_notify_start_0", &rsc, &ty, &ms));
125 g_assert_cmpstr(rsc, ==, "post_notify");
126 g_assert_cmpstr(ty, ==, "start");
127 g_assert_cmpint(ms, ==, 0);
128 free(rsc);
129 free(ty);
130 }
131
132 static void
133 skip_rsc(void)
134 {
135 char *ty = NULL;
136 guint ms = 0;
137
138 g_assert_true(parse_op_key("Fencing_monitor_60000", NULL, &ty, &ms));
139 g_assert_cmpstr(ty, ==, "monitor");
140 g_assert_cmpint(ms, ==, 60000);
141 free(ty);
142 }
143
144 static void
145 skip_ty(void)
146 {
147 char *rsc = NULL;
148 guint ms = 0;
149
150 g_assert_true(parse_op_key("Fencing_monitor_60000", &rsc, NULL, &ms));
151 g_assert_cmpstr(rsc, ==, "Fencing");
152 g_assert_cmpint(ms, ==, 60000);
153 free(rsc);
154 }
155
156 static void
157 skip_ms(void)
158 {
159 char *rsc = NULL;
160 char *ty = NULL;
161
162 g_assert_true(parse_op_key("Fencing_monitor_60000", &rsc, &ty, NULL));
163 g_assert_cmpstr(rsc, ==, "Fencing");
164 g_assert_cmpstr(ty, ==, "monitor");
165 free(rsc);
166 free(ty);
167 }
168
169 static void
170 empty_input(void)
171 {
172 char *rsc = NULL;
173 char *ty = NULL;
174 guint ms = 0;
175
176 g_assert_false(parse_op_key("", &rsc, &ty, &ms));
177 g_assert_null(rsc);
178 g_assert_null(ty);
179 g_assert_cmpint(ms, ==, 0);
180
181 g_assert_false(parse_op_key(NULL, &rsc, &ty, &ms));
182 g_assert_null(rsc);
183 g_assert_null(ty);
184 g_assert_cmpint(ms, ==, 0);
185 }
186
187 static void
188 malformed_input(void)
189 {
190 char *rsc = NULL;
191 char *ty = NULL;
192 guint ms = 0;
193
194 g_assert_false(parse_op_key("httpd-bundle-0", &rsc, &ty, &ms));
195 g_assert_null(rsc);
196 g_assert_null(ty);
197 g_assert_cmpint(ms, ==, 0);
198
199 g_assert_false(parse_op_key("httpd-bundle-0_monitor", &rsc, &ty, &ms));
200 g_assert_null(rsc);
201 g_assert_null(ty);
202 g_assert_cmpint(ms, ==, 0);
203
204 g_assert_false(parse_op_key("httpd-bundle-0_30000", &rsc, &ty, &ms));
205 g_assert_null(rsc);
206 g_assert_null(ty);
207 g_assert_cmpint(ms, ==, 0);
208 }
209
210 int main(int argc, char **argv)
211 {
212 g_test_init(&argc, &argv, NULL);
213
214 g_test_add_func("/common/utils/parse_op_key/basic", basic);
215 g_test_add_func("/common/utils/parse_op_key/colon_in_rsc", colon_in_rsc);
216 g_test_add_func("/common/utils/parse_op_key/dashes_in_rsc", dashes_in_rsc);
217 g_test_add_func("/common/utils/parse_op_key/migrate_to_from", migrate_to_from);
218 g_test_add_func("/common/utils/parse_op_key/pre_post", pre_post);
219
220 g_test_add_func("/common/utils/parse_op_key/skip_rsc", skip_rsc);
221 g_test_add_func("/common/utils/parse_op_key/skip_ty", skip_ty);
222 g_test_add_func("/common/utils/parse_op_key/skip_ms", skip_ms);
223
224 g_test_add_func("/common/utils/parse_op_key/empty_input", empty_input);
225 g_test_add_func("/common/utils/parse_op_key/malformed_input", malformed_input);
226
227 return g_test_run();
228 }