2 * Copyright (C) 2013 Red Hat, Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see
16 * <http://www.gnu.org/licenses/>.
22 #include "virstring.h"
24 #include "testutils.h"
26 #define VIR_FROM_THIS VIR_FROM_NONE
28 static char *fchost_prefix;
30 #define TEST_FC_HOST_PREFIX fchost_prefix
31 #define TEST_FC_HOST_NUM 5
33 /* Test virIsCapableFCHost */
35 test1(const void *data ATTRIBUTE_UNUSED)
37 if (virIsCapableFCHost(TEST_FC_HOST_PREFIX,
44 /* Test virIsCapableVport */
46 test2(const void *data ATTRIBUTE_UNUSED)
48 if (virIsCapableVport(TEST_FC_HOST_PREFIX,
55 /* Test virReadFCHost */
57 test3(const void *data ATTRIBUTE_UNUSED)
59 const char *expect_wwnn = "2001001b32a9da4e";
60 const char *expect_wwpn = "2101001b32a9da4e";
61 const char *expect_fabric_wwn = "2001000dec9877c1";
62 const char *expect_max_vports = "127";
63 const char *expect_vports = "0";
66 char *fabric_wwn = NULL;
67 char *max_vports = NULL;
71 if (virReadFCHost(TEST_FC_HOST_PREFIX,
77 if (virReadFCHost(TEST_FC_HOST_PREFIX,
83 if (virReadFCHost(TEST_FC_HOST_PREFIX,
89 if (virReadFCHost(TEST_FC_HOST_PREFIX,
96 if (virReadFCHost(TEST_FC_HOST_PREFIX,
102 if (STRNEQ(expect_wwnn, wwnn) ||
103 STRNEQ(expect_wwpn, wwpn) ||
104 STRNEQ(expect_fabric_wwn, fabric_wwn) ||
105 STRNEQ(expect_max_vports, max_vports) ||
106 STRNEQ(expect_vports, vports))
113 VIR_FREE(fabric_wwn);
114 VIR_FREE(max_vports);
119 /* Test virGetFCHostNameByWWN */
121 test4(const void *data ATTRIBUTE_UNUSED)
123 const char *expect_hostname = "host5";
124 char *hostname = NULL;
127 if (!(hostname = virGetFCHostNameByWWN(TEST_FC_HOST_PREFIX,
129 "2101001b32a9da4e")))
132 if (STRNEQ(hostname, expect_hostname))
141 /* Test virFindFCHostCapableVport (host4 is not Online) */
143 test5(const void *data ATTRIBUTE_UNUSED)
145 const char *expect_hostname = "host5";
146 char *hostname = NULL;
149 if (!(hostname = virFindFCHostCapableVport(TEST_FC_HOST_PREFIX)))
152 if (STRNEQ(hostname, expect_hostname))
166 if (virAsprintf(&fchost_prefix, "%s/%s", abs_srcdir,
167 "fchostdata/fc_host/") < 0) {
172 if (virtTestRun("test1", test1, NULL) < 0)
174 if (virtTestRun("test2", test2, NULL) < 0)
176 if (virtTestRun("test3", test3, NULL) < 0)
178 if (virtTestRun("test4", test4, NULL) < 0)
180 if (virtTestRun("test5", test5, NULL) < 0)
184 VIR_FREE(fchost_prefix);
188 VIRT_TEST_MAIN(mymain)