TESTS: get rid of a sanitize helper
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -172,6 +172,12 @@ static int check_result(const char *opcode, struct scsi_device *sdev,
|
|||||||
scsi_sense_ascq_str(ascq[0]), ascq[0]);
|
scsi_sense_ascq_str(ascq[0]), ascq[0]);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (status == SCSI_STATUS_RESERVATION_CONFLICT
|
||||||
|
&& task->status != SCSI_STATUS_RESERVATION_CONFLICT) {
|
||||||
|
logging(LOG_NORMAL, "[FAILED] %s command should have failed "
|
||||||
|
"with RESERVATION_CONFLICT.", opcode);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
/* did we get any of the expected ASCQs ?*/
|
/* did we get any of the expected ASCQs ?*/
|
||||||
if (status == SCSI_STATUS_CHECK_CONDITION) {
|
if (status == SCSI_STATUS_CHECK_CONDITION) {
|
||||||
int i;
|
int i;
|
||||||
@@ -1259,41 +1265,6 @@ int sanitize(struct scsi_device *sdev, int immed, int ause, int sa, int param_le
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sanitize_conflict(struct scsi_device *sdev, int immed, int ause, int sa, int param_len, struct iscsi_data *data)
|
|
||||||
{
|
|
||||||
struct scsi_task *task;
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Send SANITIZE (Expecting RESERVATION_CONFLICT) "
|
|
||||||
"IMMED:%d AUSE:%d SA:%d "
|
|
||||||
"PARAM_LEN:%d",
|
|
||||||
immed, ause, sa, param_len);
|
|
||||||
|
|
||||||
task = iscsi_sanitize_sync(sdev->iscsi_ctx, sdev->iscsi_lun, immed, ause, sa, param_len,
|
|
||||||
data);
|
|
||||||
if (task == NULL) {
|
|
||||||
logging(LOG_NORMAL,
|
|
||||||
"[FAILED] Failed to send SANITIZE command: %s",
|
|
||||||
iscsi_get_error(sdev->iscsi_ctx));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (task->status == SCSI_STATUS_GOOD) {
|
|
||||||
logging(LOG_NORMAL,
|
|
||||||
"[FAILED] SANITIZE successful but should have failed with RESERVATION_CONFLICT");
|
|
||||||
scsi_free_scsi_task(task);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (task->status != SCSI_STATUS_RESERVATION_CONFLICT) {
|
|
||||||
logging(LOG_NORMAL, "[FAILED] Expected RESERVATION CONFLICT. "
|
|
||||||
"Sense:%s", iscsi_get_error(sdev->iscsi_ctx));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
scsi_free_scsi_task(task);
|
|
||||||
logging(LOG_VERBOSE, "[OK] SANITIZE returned RESERVATION_CONFLICT.");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int startstopunit(struct scsi_device *sdev, int immed, int pcm, int pc, int no_flush, int loej, int start, int status, enum scsi_sense_key key, int *ascq, int num_ascq)
|
int startstopunit(struct scsi_device *sdev, int immed, int pcm, int pc, int no_flush, int loej, int start, int status, enum scsi_sense_key key, int *ascq, int num_ascq)
|
||||||
{
|
{
|
||||||
struct scsi_task *task;
|
struct scsi_task *task;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ extern const char *initiatorname2;
|
|||||||
#define EXPECT_WRITE_PROTECTED SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_DATA_PROTECTION, write_protect_ascqs, 3
|
#define EXPECT_WRITE_PROTECTED SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_DATA_PROTECTION, write_protect_ascqs, 3
|
||||||
#define EXPECT_SANITIZE SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_NOT_READY, sanitize_ascqs, 1
|
#define EXPECT_SANITIZE SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_NOT_READY, sanitize_ascqs, 1
|
||||||
#define EXPECT_REMOVAL_PREVENTED SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_ILLEGAL_REQUEST, removal_ascqs, 1
|
#define EXPECT_REMOVAL_PREVENTED SCSI_STATUS_CHECK_CONDITION, SCSI_SENSE_ILLEGAL_REQUEST, removal_ascqs, 1
|
||||||
|
#define EXPECT_RESERVATION_CONFLICT SCSI_STATUS_RESERVATION_CONFLICT, 0, NULL, 0
|
||||||
|
|
||||||
int no_medium_ascqs[3];
|
int no_medium_ascqs[3];
|
||||||
int lba_oob_ascqs[1];
|
int lba_oob_ascqs[1];
|
||||||
@@ -288,7 +289,6 @@ int release6(struct scsi_device *sdev);
|
|||||||
int reserve6(struct scsi_device *sdev);
|
int reserve6(struct scsi_device *sdev);
|
||||||
int reserve6_conflict(struct scsi_device *sdev);
|
int reserve6_conflict(struct scsi_device *sdev);
|
||||||
int sanitize(struct scsi_device *sdev, int immed, int ause, int sa, int param_len, struct iscsi_data *data, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
int sanitize(struct scsi_device *sdev, int immed, int ause, int sa, int param_len, struct iscsi_data *data, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
||||||
int sanitize_conflict(struct scsi_device *sdev, int immed, int ause, int sa, int param_len, struct iscsi_data *data);
|
|
||||||
int startstopunit(struct scsi_device *sdev, int immed, int pcm, int pc, int no_flush, int loej, int start, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
int startstopunit(struct scsi_device *sdev, int immed, int pcm, int pc, int no_flush, int loej, int start, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
||||||
int synchronizecache10(struct scsi_device *sdev, uint32_t lba, int num_blocks, int sync_nv, int immed, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
int synchronizecache10(struct scsi_device *sdev, uint32_t lba, int num_blocks, int sync_nv, int immed, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
||||||
int synchronizecache16(struct scsi_device *sdev, uint64_t lba, int num_blocks, int sync_nv, int immed, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
int synchronizecache16(struct scsi_device *sdev, uint64_t lba, int num_blocks, int sync_nv, int immed, int status, enum scsi_sense_key key, int *ascq, int num_ascq);
|
||||||
|
|||||||
@@ -79,8 +79,9 @@ test_sanitize_reservations(void)
|
|||||||
data.data[1] = 0x00;
|
data.data[1] = 0x00;
|
||||||
data.data[2] = block_size >> 8;
|
data.data[2] = block_size >> 8;
|
||||||
data.data[3] = block_size & 0xff;
|
data.data[3] = block_size & 0xff;
|
||||||
ret = sanitize_conflict(sd,
|
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size,
|
||||||
0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data);
|
&data,
|
||||||
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
CU_ASSERT_EQUAL(ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,8 +95,8 @@ test_sanitize_reservations(void)
|
|||||||
"implemented according to REPORT_SUPPORTED_OPCODES.");
|
"implemented according to REPORT_SUPPORTED_OPCODES.");
|
||||||
} else {
|
} else {
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE BLOCK_ERASE");
|
logging(LOG_VERBOSE, "Test SANITIZE BLOCK_ERASE");
|
||||||
ret = sanitize_conflict(sd,
|
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL);
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
CU_ASSERT_EQUAL(ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,8 +109,8 @@ test_sanitize_reservations(void)
|
|||||||
"implemented according to REPORT_SUPPORTED_OPCODES.");
|
"implemented according to REPORT_SUPPORTED_OPCODES.");
|
||||||
} else {
|
} else {
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE CRYPTO_ERASE");
|
logging(LOG_VERBOSE, "Test SANITIZE CRYPTO_ERASE");
|
||||||
ret = sanitize_conflict(sd,
|
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL);
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
CU_ASSERT_EQUAL(ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user