From 1995298914fa0e9978532eaa115b81c3ce6c5de6 Mon Sep 17 00:00:00 2001 From: Craig Rodrigues Date: Wed, 3 Jun 2015 18:52:04 +0000 Subject: [PATCH] test_modesense6_control_swp: skip test if target cannot change swp Signed-off-by: Vadim Finkelstein --- test-tool/iscsi-support.c | 10 +++++++++- test-tool/test_modesense6_control_swp.c | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/test-tool/iscsi-support.c b/test-tool/iscsi-support.c index e77ca3e..cdfe2dd 100644 --- a/test-tool/iscsi-support.c +++ b/test-tool/iscsi-support.c @@ -2407,7 +2407,9 @@ int set_swp(struct scsi_device *sdev) struct scsi_mode_page *mp; logging(LOG_VERBOSE, "Read CONTROL page"); - ret = modesense6(sdev, &sense_task, 1, SCSI_MODESENSE_PC_CURRENT, + + /* see if we can even change swp */ + ret = modesense6(sdev, &sense_task, 1, SCSI_MODESENSE_PC_CHANGEABLE, SCSI_MODEPAGE_CONTROL, 0, 255, EXPECT_STATUS_GOOD); if (ret) { @@ -2423,6 +2425,12 @@ int set_swp(struct scsi_device *sdev) ret = -1; goto finished; } + /* if we cannot change swp, we are done here */ + if (ms->pages->control.swp == 0) { + logging(LOG_NORMAL, "SWP is not changeable"); + ret = -2; + goto finished; + } mp = scsi_modesense_get_page(ms, SCSI_MODEPAGE_CONTROL, 0); if (mp == NULL) { logging(LOG_NORMAL, "failed to read control mode page"); diff --git a/test-tool/test_modesense6_control_swp.c b/test-tool/test_modesense6_control_swp.c index 7eb3a1f..4469d9e 100644 --- a/test-tool/test_modesense6_control_swp.c +++ b/test-tool/test_modesense6_control_swp.c @@ -43,6 +43,10 @@ test_modesense6_control_swp(void) logging(LOG_VERBOSE, "Set SWP to enable write protect"); ret = set_swp(sd); + if (ret == -2) { + CU_PASS("[SKIPPED] Target does not support changing SWP"); + return; + } CU_ASSERT_EQUAL(ret, 0); if (ret) { goto finished;