Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright (C) 2017 Intel Corporation.
3 : : * All rights reserved.
4 : : */
5 : :
6 : : #include "spdk/stdinc.h"
7 : :
8 : : #include "spdk_internal/cunit.h"
9 : : #include "CUnit/Basic.h"
10 : :
11 : : #include "iscsi/init_grp.c"
12 : : #include "unit/lib/json_mock.c"
13 : :
14 : 4 : SPDK_LOG_REGISTER_COMPONENT(iscsi)
15 : :
16 : : struct spdk_iscsi_globals g_iscsi = {
17 : : .mutex = PTHREAD_MUTEX_INITIALIZER
18 : : };
19 : :
20 : : static int
21 : 4 : test_setup(void)
22 : : {
23 : 4 : TAILQ_INIT(&g_iscsi.ig_head);
24 : 4 : return 0;
25 : : }
26 : :
27 : : static void
28 : 4 : create_initiator_group_success_case(void)
29 : : {
30 : : struct spdk_iscsi_init_grp *ig;
31 : :
32 : 4 : ig = iscsi_init_grp_create(1);
33 : 4 : CU_ASSERT(ig != NULL);
34 : :
35 : 4 : iscsi_init_grp_destroy(ig);
36 : 4 : }
37 : :
38 : : static void
39 : 4 : find_initiator_group_success_case(void)
40 : : {
41 : : struct spdk_iscsi_init_grp *ig, *tmp;
42 : : int rc;
43 : :
44 : 4 : ig = iscsi_init_grp_create(1);
45 : 4 : CU_ASSERT(ig != NULL);
46 : :
47 : 4 : rc = iscsi_init_grp_register(ig);
48 : 4 : CU_ASSERT(rc == 0);
49 : :
50 : 4 : ig = iscsi_init_grp_find_by_tag(1);
51 : 4 : CU_ASSERT(ig != NULL);
52 : :
53 : 4 : tmp = iscsi_init_grp_unregister(1);
54 : 4 : CU_ASSERT(ig == tmp);
55 : 4 : iscsi_init_grp_destroy(ig);
56 : :
57 : 4 : ig = iscsi_init_grp_find_by_tag(1);
58 : 4 : CU_ASSERT(ig == NULL);
59 : 4 : }
60 : :
61 : : static void
62 : 4 : register_initiator_group_twice_case(void)
63 : : {
64 : : struct spdk_iscsi_init_grp *ig, *tmp;
65 : : int rc;
66 : :
67 : 4 : ig = iscsi_init_grp_create(1);
68 : 4 : CU_ASSERT(ig != NULL);
69 : :
70 : 4 : rc = iscsi_init_grp_register(ig);
71 : 4 : CU_ASSERT(rc == 0);
72 : :
73 : 4 : rc = iscsi_init_grp_register(ig);
74 : 4 : CU_ASSERT(rc != 0);
75 : :
76 : 4 : ig = iscsi_init_grp_find_by_tag(1);
77 : 4 : CU_ASSERT(ig != NULL);
78 : :
79 : 4 : tmp = iscsi_init_grp_unregister(1);
80 : 4 : CU_ASSERT(tmp == ig);
81 : 4 : iscsi_init_grp_destroy(ig);
82 : :
83 : 4 : ig = iscsi_init_grp_find_by_tag(1);
84 : 4 : CU_ASSERT(ig == NULL);
85 : 4 : }
86 : :
87 : : static void
88 : 4 : add_initiator_name_success_case(void)
89 : : {
90 : :
91 : : int rc;
92 : : struct spdk_iscsi_init_grp *ig;
93 : : struct spdk_iscsi_initiator_name *iname;
94 : 4 : char *name1 = "iqn.2017-10.spdk.io:0001";
95 : 4 : char *name2 = "iqn.2017-10.spdk.io:0002";
96 : :
97 : 4 : ig = iscsi_init_grp_create(1);
98 : 4 : CU_ASSERT(ig != NULL);
99 : :
100 : : /* add two different names to the empty name list */
101 : 4 : rc = iscsi_init_grp_add_initiator(ig, name1);
102 : 4 : CU_ASSERT(rc == 0);
103 : :
104 : 4 : rc = iscsi_init_grp_add_initiator(ig, name2);
105 : 4 : CU_ASSERT(rc == 0);
106 : :
107 : : /* check if two names are added correctly. */
108 : 4 : iname = iscsi_init_grp_find_initiator(ig, name1);
109 : 4 : CU_ASSERT(iname != NULL);
110 : :
111 : 4 : iname = iscsi_init_grp_find_initiator(ig, name2);
112 : 4 : CU_ASSERT(iname != NULL);
113 : :
114 : : /* restore the initial state */
115 : 4 : rc = iscsi_init_grp_delete_initiator(ig, name1);
116 : 4 : CU_ASSERT(rc == 0);
117 : :
118 : 4 : iname = iscsi_init_grp_find_initiator(ig, name1);
119 : 4 : CU_ASSERT(iname == NULL);
120 : :
121 : 4 : rc = iscsi_init_grp_delete_initiator(ig, name2);
122 : 4 : CU_ASSERT(rc == 0);
123 : :
124 : 4 : iname = iscsi_init_grp_find_initiator(ig, name2);
125 : 4 : CU_ASSERT(iname == NULL);
126 : :
127 : 4 : iscsi_init_grp_destroy(ig);
128 : 4 : }
129 : :
130 : : static void
131 : 4 : add_initiator_name_fail_case(void)
132 : : {
133 : : int rc;
134 : : struct spdk_iscsi_init_grp *ig;
135 : : struct spdk_iscsi_initiator_name *iname;
136 : 4 : char *name1 = "iqn.2017-10.spdk.io:0001";
137 : :
138 : 4 : ig = iscsi_init_grp_create(1);
139 : 4 : CU_ASSERT(ig != NULL);
140 : :
141 : : /* add an name to the full name list */
142 : 4 : ig->ninitiators = MAX_INITIATOR;
143 : :
144 : 4 : rc = iscsi_init_grp_add_initiator(ig, name1);
145 : 4 : CU_ASSERT(rc != 0);
146 : :
147 : 4 : ig->ninitiators = 0;
148 : :
149 : : /* add the same name to the name list twice */
150 : 4 : rc = iscsi_init_grp_add_initiator(ig, name1);
151 : 4 : CU_ASSERT(rc == 0);
152 : :
153 : 4 : rc = iscsi_init_grp_add_initiator(ig, name1);
154 : 4 : CU_ASSERT(rc != 0);
155 : :
156 : : /* restore the initial state */
157 : 4 : rc = iscsi_init_grp_delete_initiator(ig, name1);
158 : 4 : CU_ASSERT(rc == 0);
159 : :
160 : 4 : iname = iscsi_init_grp_find_initiator(ig, name1);
161 : 4 : CU_ASSERT(iname == NULL);
162 : :
163 : 4 : iscsi_init_grp_destroy(ig);
164 : 4 : }
165 : :
166 : : static void
167 : 4 : delete_all_initiator_names_success_case(void)
168 : : {
169 : : int rc;
170 : : struct spdk_iscsi_init_grp *ig;
171 : : struct spdk_iscsi_initiator_name *iname;
172 : 4 : char *name1 = "iqn.2017-10.spdk.io:0001";
173 : 4 : char *name2 = "iqn.2017-10.spdk.io:0002";
174 : :
175 : 4 : ig = iscsi_init_grp_create(1);
176 : 4 : CU_ASSERT(ig != NULL);
177 : :
178 : : /* add two different names to the empty name list */
179 : 4 : rc = iscsi_init_grp_add_initiator(ig, name1);
180 : 4 : CU_ASSERT(rc == 0);
181 : :
182 : 4 : rc = iscsi_init_grp_add_initiator(ig, name2);
183 : 4 : CU_ASSERT(rc == 0);
184 : :
185 : : /* delete all initiator names */
186 : 4 : iscsi_init_grp_delete_all_initiators(ig);
187 : :
188 : : /* check if two names are deleted correctly. */
189 : 4 : iname = iscsi_init_grp_find_initiator(ig, name1);
190 : 4 : CU_ASSERT(iname == NULL);
191 : :
192 : 4 : iname = iscsi_init_grp_find_initiator(ig, name2);
193 : 4 : CU_ASSERT(iname == NULL);
194 : :
195 : : /* restore the initial state */
196 : 4 : iscsi_init_grp_destroy(ig);
197 : 4 : }
198 : :
199 : : static void
200 : 4 : add_netmask_success_case(void)
201 : : {
202 : : int rc;
203 : : struct spdk_iscsi_init_grp *ig;
204 : : struct spdk_iscsi_initiator_netmask *imask;
205 : 4 : char *netmask1 = "192.168.2.0";
206 : 4 : char *netmask2 = "192.168.2.1";
207 : :
208 : 4 : ig = iscsi_init_grp_create(1);
209 : 4 : CU_ASSERT(ig != NULL);
210 : :
211 : : /* add two different netmasks to the empty netmask list */
212 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask1);
213 : 4 : CU_ASSERT(rc == 0);
214 : :
215 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask2);
216 : 4 : CU_ASSERT(rc == 0);
217 : :
218 : : /* check if two netmasks are added correctly. */
219 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask1);
220 : 4 : CU_ASSERT(imask != NULL);
221 : :
222 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask2);
223 : 4 : CU_ASSERT(imask != NULL);
224 : :
225 : : /* restore the initial state */
226 : 4 : rc = iscsi_init_grp_delete_netmask(ig, netmask1);
227 : 4 : CU_ASSERT(rc == 0);
228 : :
229 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask1);
230 : 4 : CU_ASSERT(imask == NULL);
231 : :
232 : 4 : rc = iscsi_init_grp_delete_netmask(ig, netmask2);
233 : 4 : CU_ASSERT(rc == 0);
234 : :
235 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask2);
236 : 4 : CU_ASSERT(imask == NULL);
237 : :
238 : 4 : iscsi_init_grp_destroy(ig);
239 : 4 : }
240 : :
241 : : static void
242 : 4 : add_netmask_fail_case(void)
243 : : {
244 : : int rc;
245 : : struct spdk_iscsi_init_grp *ig;
246 : : struct spdk_iscsi_initiator_netmask *imask;
247 : 4 : char *netmask1 = "192.168.2.0";
248 : :
249 : 4 : ig = iscsi_init_grp_create(1);
250 : 4 : CU_ASSERT(ig != NULL);
251 : :
252 : : /* add an netmask to the full netmask list */
253 : 4 : ig->nnetmasks = MAX_NETMASK;
254 : :
255 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask1);
256 : 4 : CU_ASSERT(rc != 0);
257 : :
258 : 4 : ig->nnetmasks = 0;
259 : :
260 : : /* add the same netmask to the netmask list twice */
261 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask1);
262 : 4 : CU_ASSERT(rc == 0);
263 : :
264 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask1);
265 : 4 : CU_ASSERT(rc != 0);
266 : :
267 : : /* restore the initial state */
268 : 4 : rc = iscsi_init_grp_delete_netmask(ig, netmask1);
269 : 4 : CU_ASSERT(rc == 0);
270 : :
271 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask1);
272 : 4 : CU_ASSERT(imask == NULL);
273 : :
274 : 4 : iscsi_init_grp_destroy(ig);
275 : 4 : }
276 : :
277 : : static void
278 : 4 : delete_all_netmasks_success_case(void)
279 : : {
280 : : int rc;
281 : : struct spdk_iscsi_init_grp *ig;
282 : : struct spdk_iscsi_initiator_netmask *imask;
283 : 4 : char *netmask1 = "192.168.2.0";
284 : 4 : char *netmask2 = "192.168.2.1";
285 : :
286 : 4 : ig = iscsi_init_grp_create(1);
287 : 4 : CU_ASSERT(ig != NULL);
288 : :
289 : : /* add two different netmasks to the empty netmask list */
290 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask1);
291 : 4 : CU_ASSERT(rc == 0);
292 : :
293 : 4 : rc = iscsi_init_grp_add_netmask(ig, netmask2);
294 : 4 : CU_ASSERT(rc == 0);
295 : :
296 : : /* delete all netmasks */
297 : 4 : iscsi_init_grp_delete_all_netmasks(ig);
298 : :
299 : : /* check if two netmasks are deleted correctly. */
300 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask1);
301 : 4 : CU_ASSERT(imask == NULL);
302 : :
303 : 4 : imask = iscsi_init_grp_find_netmask(ig, netmask2);
304 : 4 : CU_ASSERT(imask == NULL);
305 : :
306 : : /* restore the initial state */
307 : 4 : iscsi_init_grp_destroy(ig);
308 : 4 : }
309 : :
310 : : static void
311 : 4 : initiator_name_overwrite_all_to_any_case(void)
312 : : {
313 : : int rc;
314 : : struct spdk_iscsi_init_grp *ig;
315 : : struct spdk_iscsi_initiator_name *iname;
316 : 4 : char *all = "ALL";
317 : 4 : char *any = "ANY";
318 : 4 : char *all_not = "!ALL";
319 : 4 : char *any_not = "!ANY";
320 : :
321 : 4 : ig = iscsi_init_grp_create(1);
322 : 4 : CU_ASSERT(ig != NULL);
323 : :
324 : 4 : rc = iscsi_init_grp_add_initiator(ig, all);
325 : 4 : CU_ASSERT(rc == 0);
326 : :
327 : 4 : iname = iscsi_init_grp_find_initiator(ig, all);
328 : 4 : CU_ASSERT(iname == NULL);
329 : :
330 : 4 : iname = iscsi_init_grp_find_initiator(ig, any);
331 : 4 : CU_ASSERT(iname != NULL);
332 : :
333 : 4 : rc = iscsi_init_grp_delete_initiator(ig, any);
334 : 4 : CU_ASSERT(rc == 0);
335 : :
336 : 4 : rc = iscsi_init_grp_add_initiator(ig, all_not);
337 : 4 : CU_ASSERT(rc == 0);
338 : :
339 : 4 : iname = iscsi_init_grp_find_initiator(ig, all_not);
340 : 4 : CU_ASSERT(iname == NULL);
341 : :
342 : 4 : iname = iscsi_init_grp_find_initiator(ig, any_not);
343 : 4 : CU_ASSERT(iname != NULL);
344 : :
345 : 4 : rc = iscsi_init_grp_delete_initiator(ig, any_not);
346 : 4 : CU_ASSERT(rc == 0);
347 : :
348 : 4 : iscsi_init_grp_destroy(ig);
349 : 4 : }
350 : :
351 : : static void
352 : 4 : netmask_overwrite_all_to_any_case(void)
353 : : {
354 : : int rc;
355 : : struct spdk_iscsi_init_grp *ig;
356 : : struct spdk_iscsi_initiator_netmask *imask;
357 : 4 : char *all = "ALL";
358 : 4 : char *any = "ANY";
359 : :
360 : 4 : ig = iscsi_init_grp_create(1);
361 : 4 : CU_ASSERT(ig != NULL);
362 : :
363 : 4 : rc = iscsi_init_grp_add_netmask(ig, all);
364 : 4 : CU_ASSERT(rc == 0);
365 : :
366 : 4 : imask = iscsi_init_grp_find_netmask(ig, all);
367 : 4 : CU_ASSERT(imask == NULL);
368 : :
369 : 4 : imask = iscsi_init_grp_find_netmask(ig, any);
370 : 4 : CU_ASSERT(imask != NULL);
371 : :
372 : 4 : rc = iscsi_init_grp_delete_netmask(ig, any);
373 : 4 : CU_ASSERT(rc == 0);
374 : :
375 : 4 : iscsi_init_grp_destroy(ig);
376 : 4 : }
377 : :
378 : : static void
379 : 4 : add_delete_initiator_names_case(void)
380 : : {
381 : : int rc, i;
382 : : struct spdk_iscsi_init_grp *ig;
383 : : struct spdk_iscsi_initiator_name *iname;
384 : 4 : char *names[3] = {"iqn.2018-02.spdk.io:0001", "iqn.2018-02.spdk.io:0002", "iqn.2018-02.spdk.io:0003"};
385 : :
386 : 4 : ig = iscsi_init_grp_create(1);
387 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
388 : :
389 : 4 : rc = iscsi_init_grp_add_initiators(ig, 3, names);
390 : 4 : CU_ASSERT(rc == 0);
391 : :
392 [ + + ]: 16 : for (i = 0; i < 3; i++) {
393 : 12 : iname = iscsi_init_grp_find_initiator(ig, names[i]);
394 : 12 : CU_ASSERT(iname != NULL);
395 : : }
396 : :
397 : 4 : rc = iscsi_init_grp_delete_initiators(ig, 3, names);
398 : 4 : CU_ASSERT(rc == 0);
399 : :
400 [ + - ]: 4 : if (ig != NULL) {
401 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->initiator_head));
402 : : }
403 : :
404 : 4 : iscsi_init_grp_destroy(ig);
405 : 4 : }
406 : :
407 : : static void
408 : 4 : add_duplicated_initiator_names_case(void)
409 : : {
410 : : int rc;
411 : : struct spdk_iscsi_init_grp *ig;
412 : 4 : char *names[3] = {"iqn.2018-02.spdk.io:0001", "iqn.2018-02.spdk.io:0002", "iqn.2018-02.spdk.io:0001"};
413 : :
414 : 4 : ig = iscsi_init_grp_create(1);
415 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
416 : :
417 : 4 : rc = iscsi_init_grp_add_initiators(ig, 3, names);
418 : 4 : CU_ASSERT(rc != 0);
419 : :
420 [ + - ]: 4 : if (ig != NULL) {
421 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->initiator_head));
422 : : }
423 : :
424 : 4 : iscsi_init_grp_destroy(ig);
425 : 4 : }
426 : :
427 : : static void
428 : 4 : delete_nonexisting_initiator_names_case(void)
429 : : {
430 : : int rc, i;
431 : : struct spdk_iscsi_init_grp *ig;
432 : : struct spdk_iscsi_initiator_name *iname;
433 : 4 : char *names1[3] = {"iqn.2018-02.spdk.io:0001", "iqn.2018-02.spdk.io:0002", "iqn.2018-02.spdk.io:0003"};
434 : 4 : char *names2[3] = {"iqn.2018-02.spdk.io:0001", "iqn.2018-02.spdk.io:0002", "iqn.2018-02.spdk.io:0004"};
435 : :
436 : 4 : ig = iscsi_init_grp_create(1);
437 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
438 : :
439 : 4 : rc = iscsi_init_grp_add_initiators(ig, 3, names1);
440 : 4 : CU_ASSERT(rc == 0);
441 : :
442 [ + + ]: 16 : for (i = 0; i < 3; i++) {
443 : 12 : iname = iscsi_init_grp_find_initiator(ig, names1[i]);
444 : 12 : CU_ASSERT(iname != NULL);
445 : : }
446 : :
447 : 4 : rc = iscsi_init_grp_delete_initiators(ig, 3, names2);
448 : 4 : CU_ASSERT(rc != 0);
449 : :
450 [ + + ]: 16 : for (i = 0; i < 3; i++) {
451 : 12 : iname = iscsi_init_grp_find_initiator(ig, names1[i]);
452 : 12 : CU_ASSERT(iname != NULL);
453 : : }
454 : :
455 : 4 : rc = iscsi_init_grp_delete_initiators(ig, 3, names1);
456 : 4 : CU_ASSERT(rc == 0);
457 : :
458 [ + - ]: 4 : if (ig != NULL) {
459 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->initiator_head));
460 : : }
461 : :
462 : 4 : iscsi_init_grp_destroy(ig);
463 : 4 : }
464 : :
465 : : static void
466 : 4 : add_delete_netmasks_case(void)
467 : : {
468 : : int rc, i;
469 : : struct spdk_iscsi_init_grp *ig;
470 : : struct spdk_iscsi_initiator_netmask *netmask;
471 : 4 : char *netmasks[3] = {"192.168.2.0", "192.168.2.1", "192.168.2.2"};
472 : :
473 : 4 : ig = iscsi_init_grp_create(1);
474 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
475 : :
476 : 4 : rc = iscsi_init_grp_add_netmasks(ig, 3, netmasks);
477 : 4 : CU_ASSERT(rc == 0);
478 : :
479 [ + + ]: 16 : for (i = 0; i < 3; i++) {
480 : 12 : netmask = iscsi_init_grp_find_netmask(ig, netmasks[i]);
481 : 12 : CU_ASSERT(netmask != NULL);
482 : : }
483 : :
484 : 4 : rc = iscsi_init_grp_delete_netmasks(ig, 3, netmasks);
485 : 4 : CU_ASSERT(rc == 0);
486 : :
487 [ + - ]: 4 : if (ig != NULL) {
488 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->netmask_head));
489 : : }
490 : :
491 : 4 : iscsi_init_grp_destroy(ig);
492 : 4 : }
493 : :
494 : : static void
495 : 4 : add_duplicated_netmasks_case(void)
496 : : {
497 : : int rc;
498 : : struct spdk_iscsi_init_grp *ig;
499 : 4 : char *netmasks[3] = {"192.168.2.0", "192.168.2.1", "192.168.2.0"};
500 : :
501 : 4 : ig = iscsi_init_grp_create(1);
502 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
503 : :
504 : 4 : rc = iscsi_init_grp_add_netmasks(ig, 3, netmasks);
505 : 4 : CU_ASSERT(rc != 0);
506 : :
507 [ + - ]: 4 : if (ig != NULL) {
508 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->netmask_head));
509 : : }
510 : :
511 : 4 : iscsi_init_grp_destroy(ig);
512 : 4 : }
513 : :
514 : : static void
515 : 4 : delete_nonexisting_netmasks_case(void)
516 : : {
517 : : int rc, i;
518 : : struct spdk_iscsi_init_grp *ig;
519 : : struct spdk_iscsi_initiator_netmask *netmask;
520 : 4 : char *netmasks1[3] = {"192.168.2.0", "192.168.2.1", "192.168.2.2"};
521 : 4 : char *netmasks2[3] = {"192.168.2.0", "192.168.2.1", "192.168.2.3"};
522 : :
523 : 4 : ig = iscsi_init_grp_create(1);
524 [ - + ]: 4 : SPDK_CU_ASSERT_FATAL(ig != NULL);
525 : :
526 : 4 : rc = iscsi_init_grp_add_netmasks(ig, 3, netmasks1);
527 : 4 : CU_ASSERT(rc == 0);
528 : :
529 [ + + ]: 16 : for (i = 0; i < 3; i++) {
530 : 12 : netmask = iscsi_init_grp_find_netmask(ig, netmasks1[i]);
531 : 12 : CU_ASSERT(netmask != NULL);
532 : : }
533 : :
534 : 4 : rc = iscsi_init_grp_delete_netmasks(ig, 3, netmasks2);
535 : 4 : CU_ASSERT(rc != 0);
536 : :
537 [ + + ]: 16 : for (i = 0; i < 3; i++) {
538 : 12 : netmask = iscsi_init_grp_find_netmask(ig, netmasks1[i]);
539 : 12 : CU_ASSERT(netmask != NULL);
540 : : }
541 : :
542 : 4 : rc = iscsi_init_grp_delete_netmasks(ig, 3, netmasks1);
543 : 4 : CU_ASSERT(rc == 0);
544 : :
545 [ + - ]: 4 : if (ig != NULL) {
546 : 4 : CU_ASSERT(TAILQ_EMPTY(&ig->netmask_head));
547 : : }
548 : :
549 : 4 : iscsi_init_grp_destroy(ig);
550 : 4 : }
551 : :
552 : :
553 : : int
554 : 4 : main(int argc, char **argv)
555 : : {
556 : 4 : CU_pSuite suite = NULL;
557 : : unsigned int num_failures;
558 : :
559 : 4 : CU_initialize_registry();
560 : :
561 : 4 : suite = CU_add_suite("init_grp_suite", test_setup, NULL);
562 : :
563 : 4 : CU_ADD_TEST(suite, create_initiator_group_success_case);
564 : 4 : CU_ADD_TEST(suite, find_initiator_group_success_case);
565 : 4 : CU_ADD_TEST(suite, register_initiator_group_twice_case);
566 : 4 : CU_ADD_TEST(suite, add_initiator_name_success_case);
567 : 4 : CU_ADD_TEST(suite, add_initiator_name_fail_case);
568 : 4 : CU_ADD_TEST(suite, delete_all_initiator_names_success_case);
569 : 4 : CU_ADD_TEST(suite, add_netmask_success_case);
570 : 4 : CU_ADD_TEST(suite, add_netmask_fail_case);
571 : 4 : CU_ADD_TEST(suite, delete_all_netmasks_success_case);
572 : 4 : CU_ADD_TEST(suite, initiator_name_overwrite_all_to_any_case);
573 : 4 : CU_ADD_TEST(suite, netmask_overwrite_all_to_any_case);
574 : 4 : CU_ADD_TEST(suite, add_delete_initiator_names_case);
575 : 4 : CU_ADD_TEST(suite, add_duplicated_initiator_names_case);
576 : 4 : CU_ADD_TEST(suite, delete_nonexisting_initiator_names_case);
577 : 4 : CU_ADD_TEST(suite, add_delete_netmasks_case);
578 : 4 : CU_ADD_TEST(suite, add_duplicated_netmasks_case);
579 : 4 : CU_ADD_TEST(suite, delete_nonexisting_netmasks_case);
580 : :
581 : 4 : num_failures = spdk_ut_run_tests(argc, argv, NULL);
582 : 4 : CU_cleanup_registry();
583 : 4 : return num_failures;
584 : : }
|