test/multipath: add helper to check that all paths are iSCSI
MPATH_SKIP_UNLESS_ISCSI(_sds, _num_sds) iterates over all _sds, and skips the test unless all paths are iSCSI based. Signed-off-by: David Disseldorp <ddiss@suse.de>
This commit is contained in:
@@ -369,3 +369,19 @@ mpath_check_matching_ids(int num_sds,
|
|||||||
ret = mpath_check_matching_ids_serial_vpd(num_sds, sds);
|
ret = mpath_check_matching_ids_serial_vpd(num_sds, sds);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
mpath_count_iscsi(int num_sds,
|
||||||
|
struct scsi_device **sds)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int found = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < num_sds; i++) {
|
||||||
|
if (sds[i]->iscsi_ctx != NULL) {
|
||||||
|
found++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|||||||
@@ -24,6 +24,13 @@
|
|||||||
extern int mp_num_sds;
|
extern int mp_num_sds;
|
||||||
extern struct scsi_device *mp_sds[MPATH_MAX_DEVS];
|
extern struct scsi_device *mp_sds[MPATH_MAX_DEVS];
|
||||||
|
|
||||||
|
int
|
||||||
|
mpath_check_matching_ids(int num_sds,
|
||||||
|
struct scsi_device **sds);
|
||||||
|
int
|
||||||
|
mpath_count_iscsi(int num_sds,
|
||||||
|
struct scsi_device **sds);
|
||||||
|
|
||||||
#define MPATH_SKIP_IF_UNAVAILABLE(_sds, _num_sds) \
|
#define MPATH_SKIP_IF_UNAVAILABLE(_sds, _num_sds) \
|
||||||
do { \
|
do { \
|
||||||
if (_num_sds <= 1) { \
|
if (_num_sds <= 1) { \
|
||||||
@@ -35,8 +42,15 @@ do { \
|
|||||||
} \
|
} \
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
int
|
#define MPATH_SKIP_UNLESS_ISCSI(_sds, _num_sds) \
|
||||||
mpath_check_matching_ids(int num_sds,
|
do { \
|
||||||
struct scsi_device **sds);
|
if (mpath_count_iscsi(_num_sds, _sds) != _num_sds) { \
|
||||||
|
logging(LOG_NORMAL, "[SKIPPED] Non-iSCSI multipath." \
|
||||||
|
" Skipping test"); \
|
||||||
|
CU_PASS("[SKIPPED] Non-iSCSI multipath." \
|
||||||
|
" Skipping test"); \
|
||||||
|
return; \
|
||||||
|
} \
|
||||||
|
} while (0);
|
||||||
|
|
||||||
#endif /* _ISCSI_MULTIPATH_H_ */
|
#endif /* _ISCSI_MULTIPATH_H_ */
|
||||||
|
|||||||
Reference in New Issue
Block a user