Tests: Add helpers for SANITIZE
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -210,6 +210,20 @@ do { \
|
|||||||
CU_ASSERT_EQUAL(_r, 0); \
|
CU_ASSERT_EQUAL(_r, 0); \
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
|
#define SANITIZE(...) \
|
||||||
|
do { \
|
||||||
|
int _r; \
|
||||||
|
_r = sanitize(__VA_ARGS__); \
|
||||||
|
if (_r == -2) { \
|
||||||
|
logging(LOG_NORMAL, "[SKIPPED] SANITIZE " \
|
||||||
|
"is not implemented."); \
|
||||||
|
CU_PASS("[SKIPPED] Target does not support " \
|
||||||
|
"SANITIZE. Skipping test"); \
|
||||||
|
return; \
|
||||||
|
} \
|
||||||
|
CU_ASSERT_EQUAL(_r, 0); \
|
||||||
|
} while (0);
|
||||||
|
|
||||||
#define VERIFY10(...) \
|
#define VERIFY10(...) \
|
||||||
do { \
|
do { \
|
||||||
int _r; \
|
int _r; \
|
||||||
|
|||||||
@@ -246,7 +246,6 @@ check_lun_is_wiped(unsigned char *buf, uint64_t lba)
|
|||||||
void
|
void
|
||||||
test_sanitize_block_erase(void)
|
test_sanitize_block_erase(void)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
struct iscsi_data data;
|
struct iscsi_data data;
|
||||||
struct scsi_command_descriptor *cd;
|
struct scsi_command_descriptor *cd;
|
||||||
unsigned char *buf = alloca(256 * block_size);
|
unsigned char *buf = alloca(256 * block_size);
|
||||||
@@ -323,9 +322,8 @@ test_sanitize_block_erase(void)
|
|||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test we can perform basic BLOCK ERASE SANITIZE");
|
logging(LOG_VERBOSE, "Test we can perform basic BLOCK ERASE SANITIZE");
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
EXPECT_STATUS_GOOD);
|
EXPECT_STATUS_GOOD);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
||||||
check_lun_is_wiped(buf, 0);
|
check_lun_is_wiped(buf, 0);
|
||||||
@@ -339,9 +337,8 @@ test_sanitize_block_erase(void)
|
|||||||
logging(LOG_VERBOSE, "BLOCK_ERASE parameter list length must be 0");
|
logging(LOG_VERBOSE, "BLOCK_ERASE parameter list length must be 0");
|
||||||
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
||||||
"BLOCK ERASE");
|
"BLOCK ERASE");
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 8, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 8, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
if (inq_bdc) {
|
if (inq_bdc) {
|
||||||
logging(LOG_VERBOSE, "Check WABEREQ setting and that READ "
|
logging(LOG_VERBOSE, "Check WABEREQ setting and that READ "
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi _U_, struct iscsi_pdu
|
|||||||
|
|
||||||
void test_sanitize_block_erase_reserved(void)
|
void test_sanitize_block_erase_reserved(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i;
|
||||||
|
|
||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE BLOCK_ERASE Reserved bits/bytes");
|
logging(LOG_VERBOSE, "Test SANITIZE BLOCK_ERASE Reserved bits/bytes");
|
||||||
@@ -64,24 +64,15 @@ void test_sanitize_block_erase_reserved(void)
|
|||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"bit in byte 1 set to 1");
|
"bit in byte 1 set to 1");
|
||||||
change_num = 1;
|
change_num = 1;
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE BLOCK_ERASE is not "
|
|
||||||
"implemented on target.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 2; i < 7; i++) {
|
for (i = 2; i < 7; i++) {
|
||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"byte %d set to non-zero", i);
|
"byte %d set to non-zero", i);
|
||||||
change_num = i;
|
change_num = i;
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,6 @@ check_lun_is_wiped(unsigned char *buf, uint64_t lba)
|
|||||||
void
|
void
|
||||||
test_sanitize_crypto_erase(void)
|
test_sanitize_crypto_erase(void)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
struct iscsi_data data;
|
struct iscsi_data data;
|
||||||
struct scsi_command_descriptor *cd;
|
struct scsi_command_descriptor *cd;
|
||||||
unsigned char *buf = alloca(256 * block_size);
|
unsigned char *buf = alloca(256 * block_size);
|
||||||
@@ -185,17 +184,14 @@ test_sanitize_crypto_erase(void)
|
|||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test we can perform basic CRYPTO ERASE SANITIZE");
|
logging(LOG_VERBOSE, "Test we can perform basic CRYPTO ERASE SANITIZE");
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
EXPECT_STATUS_GOOD);
|
EXPECT_STATUS_GOOD);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
||||||
check_lun_is_wiped(buf, 0);
|
check_lun_is_wiped(buf, 0);
|
||||||
logging(LOG_VERBOSE, "Check that the last 256 LBAs are wiped.");
|
logging(LOG_VERBOSE, "Check that the last 256 LBAs are wiped.");
|
||||||
check_lun_is_wiped(buf, num_blocks - 256);
|
check_lun_is_wiped(buf, num_blocks - 256);
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
data.size = 8;
|
data.size = 8;
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
memset(data.data, 0, data.size);
|
memset(data.data, 0, data.size);
|
||||||
@@ -203,10 +199,8 @@ return;
|
|||||||
logging(LOG_VERBOSE, "CRYPTO_ERASE parameter list length must be 0");
|
logging(LOG_VERBOSE, "CRYPTO_ERASE parameter list length must be 0");
|
||||||
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
||||||
"CRYPTO ERASE");
|
"CRYPTO ERASE");
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 8, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 8, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
if (inq_bdc) {
|
if (inq_bdc) {
|
||||||
logging(LOG_VERBOSE, "Check WACEREQ setting and that READ "
|
logging(LOG_VERBOSE, "Check WACEREQ setting and that READ "
|
||||||
"after SANITIZE works correctly.");
|
"after SANITIZE works correctly.");
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi _U_, struct iscsi_pdu
|
|||||||
|
|
||||||
void test_sanitize_crypto_erase_reserved(void)
|
void test_sanitize_crypto_erase_reserved(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i;
|
||||||
|
|
||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE CRYPTO_ERASE Reserved bits/bytes");
|
logging(LOG_VERBOSE, "Test SANITIZE CRYPTO_ERASE Reserved bits/bytes");
|
||||||
@@ -64,24 +64,15 @@ void test_sanitize_crypto_erase_reserved(void)
|
|||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"bit in byte 1 set to 1");
|
"bit in byte 1 set to 1");
|
||||||
change_num = 1;
|
change_num = 1;
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE CRYPTO_ERASE is not "
|
|
||||||
"implemented on target.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 2; i < 7; i++) {
|
for (i = 2; i < 7; i++) {
|
||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"byte %d set to non-zero", i);
|
"byte %d set to non-zero", i);
|
||||||
change_num = i;
|
change_num = i;
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,6 @@
|
|||||||
void
|
void
|
||||||
test_sanitize_exit_failure_mode(void)
|
test_sanitize_exit_failure_mode(void)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
struct iscsi_data data;
|
struct iscsi_data data;
|
||||||
struct scsi_command_descriptor *cd;
|
struct scsi_command_descriptor *cd;
|
||||||
|
|
||||||
@@ -56,12 +55,10 @@ test_sanitize_exit_failure_mode(void)
|
|||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
memset(data.data, 0, data.size);
|
memset(data.data, 0, data.size);
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "EXIT_FAILURE_MODE parameter list length must "
|
logging(LOG_VERBOSE, "EXIT_FAILURE_MODE parameter list length must "
|
||||||
"be 0");
|
"be 0");
|
||||||
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
logging(LOG_VERBOSE, "Test that non-zero param length is an error for "
|
||||||
"EXIT_FAILURE_MODE");
|
"EXIT_FAILURE_MODE");
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_EXIT_FAILURE_MODE, 8, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_EXIT_FAILURE_MODE, 8, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,13 @@
|
|||||||
void
|
void
|
||||||
test_sanitize_invalid_serviceaction(void)
|
test_sanitize_invalid_serviceaction(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i;
|
||||||
|
|
||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE for invalid serviceactions");
|
logging(LOG_VERBOSE, "Test SANITIZE for invalid serviceactions");
|
||||||
|
|
||||||
CHECK_FOR_SANITIZE;
|
CHECK_FOR_SANITIZE;
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test all invalid service actions and make sure "
|
logging(LOG_VERBOSE, "Test all invalid service actions and make sure "
|
||||||
"they fail with an error");
|
"they fail with an error");
|
||||||
for (i = 0; i <= 0x1f; i++) {
|
for (i = 0; i <= 0x1f; i++) {
|
||||||
@@ -52,15 +51,7 @@ test_sanitize_invalid_serviceaction(void)
|
|||||||
logging(LOG_VERBOSE, "Verify that ServiceAction:0x%02d is "
|
logging(LOG_VERBOSE, "Verify that ServiceAction:0x%02d is "
|
||||||
"an error.", i);
|
"an error.", i);
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, i, 0, NULL,
|
SANITIZE(sd, 0, 0, i, 0, NULL,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE is not "
|
|
||||||
"implemented.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ check_lun_is_wiped(uint64_t lba, unsigned char c)
|
|||||||
void
|
void
|
||||||
test_sanitize_overwrite(void)
|
test_sanitize_overwrite(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i;
|
||||||
struct iscsi_data data;
|
struct iscsi_data data;
|
||||||
struct scsi_command_descriptor *cd;
|
struct scsi_command_descriptor *cd;
|
||||||
|
|
||||||
@@ -123,9 +123,8 @@ test_sanitize_overwrite(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(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_STATUS_GOOD);
|
EXPECT_STATUS_GOOD);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
logging(LOG_VERBOSE, "Check that the first 256 LBAs are wiped.");
|
||||||
check_lun_is_wiped(0, 0xaa);
|
check_lun_is_wiped(0, 0xaa);
|
||||||
@@ -139,10 +138,8 @@ test_sanitize_overwrite(void)
|
|||||||
data.data[2] = (block_size / 2) >> 8;
|
data.data[2] = (block_size / 2) >> 8;
|
||||||
data.data[3] = (block_size / 2 ) & 0xff;
|
data.data[3] = (block_size / 2 ) & 0xff;
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_STATUS_GOOD);
|
EXPECT_STATUS_GOOD);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test SANITIZE OVERWRITE with initialization pattern of 4 bytes");
|
logging(LOG_VERBOSE, "Test SANITIZE OVERWRITE with initialization pattern of 4 bytes");
|
||||||
data.size = 4 + 4;
|
data.size = 4 + 4;
|
||||||
@@ -150,9 +147,8 @@ test_sanitize_overwrite(void)
|
|||||||
data.data[2] = 0;
|
data.data[2] = 0;
|
||||||
data.data[3] = 4;
|
data.data[3] = 4;
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_STATUS_GOOD);
|
EXPECT_STATUS_GOOD);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "OVERWRITE parameter list length must "
|
logging(LOG_VERBOSE, "OVERWRITE parameter list length must "
|
||||||
"be > 4 and < blocksize+5");
|
"be > 4 and < blocksize+5");
|
||||||
@@ -160,16 +156,8 @@ test_sanitize_overwrite(void)
|
|||||||
logging(LOG_VERBOSE, "Test OVERWRITE with ParamLen:%d is an "
|
logging(LOG_VERBOSE, "Test OVERWRITE with ParamLen:%d is an "
|
||||||
"error.", i);
|
"error.", i);
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, i, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, i, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE is not "
|
|
||||||
"implemented.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -179,18 +167,8 @@ test_sanitize_overwrite(void)
|
|||||||
data.size = block_size + 8;
|
data.size = block_size + 8;
|
||||||
data.data = alloca(block_size + 8); /* so we can send IP > blocksize */
|
data.data = alloca(block_size + 8); /* so we can send IP > blocksize */
|
||||||
memset(data.data, 0, data.size);
|
memset(data.data, 0, data.size);
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, block_size + 5, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, block_size + 5, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
|
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE is not "
|
|
||||||
"implemented.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test OVERWRITE COUNT == 0 is an error");
|
logging(LOG_VERBOSE, "Test OVERWRITE COUNT == 0 is an error");
|
||||||
data.size = block_size + 4;
|
data.size = block_size + 4;
|
||||||
@@ -199,10 +177,8 @@ test_sanitize_overwrite(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(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test INITIALIZATION PATTERN LENGTH == 0 is an "
|
logging(LOG_VERBOSE, "Test INITIALIZATION PATTERN LENGTH == 0 is an "
|
||||||
"error");
|
"error");
|
||||||
@@ -212,10 +188,8 @@ test_sanitize_overwrite(void)
|
|||||||
data.data[1] = 0x00;
|
data.data[1] = 0x00;
|
||||||
data.data[2] = 0x00;
|
data.data[2] = 0x00;
|
||||||
data.data[3] = 0x00;
|
data.data[3] = 0x00;
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test INITIALIZATION PATTERN LENGTH == %zd > %zd "
|
logging(LOG_VERBOSE, "Test INITIALIZATION PATTERN LENGTH == %zd > %zd "
|
||||||
"(blocksize) is an error", block_size + 4, block_size);
|
"(blocksize) is an error", block_size + 4, block_size);
|
||||||
@@ -226,7 +200,6 @@ test_sanitize_overwrite(void)
|
|||||||
data.data[1] = 0x00;
|
data.data[1] = 0x00;
|
||||||
data.data[2] = (block_size + 4) >> 8;
|
data.data[2] = (block_size + 4) >> 8;
|
||||||
data.data[3] = (block_size + 4) & 0xff;
|
data.data[3] = (block_size + 4) & 0xff;
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi _U_, struct iscsi_pdu
|
|||||||
|
|
||||||
void test_sanitize_overwrite_reserved(void)
|
void test_sanitize_overwrite_reserved(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i;
|
||||||
struct iscsi_data data;
|
struct iscsi_data data;
|
||||||
|
|
||||||
data.size = block_size + 4;
|
data.size = block_size + 4;
|
||||||
@@ -74,25 +74,15 @@ void test_sanitize_overwrite_reserved(void)
|
|||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"bit in byte 1 set to 1");
|
"bit in byte 1 set to 1");
|
||||||
change_num = 1;
|
change_num = 1;
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
if (ret == -2) {
|
|
||||||
logging(LOG_NORMAL, "[SKIPPED] SANITIZE OVERWRITE is not "
|
|
||||||
"implemented on target.");
|
|
||||||
CU_PASS("SANITIZE is not implemented.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 2; i < 7; i++) {
|
for (i = 2; i < 7; i++) {
|
||||||
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
logging(LOG_VERBOSE, "Send SANITIZE command with the reserved "
|
||||||
"byte %d set to non-zero", i);
|
"byte %d set to non-zero", i);
|
||||||
change_num = i;
|
change_num = i;
|
||||||
|
|
||||||
ret = sanitize(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
&data,
|
EXPECT_INVALID_FIELD_IN_CDB);
|
||||||
EXPECT_INVALID_FIELD_IN_CDB);
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,10 +87,8 @@ test_sanitize_readonly(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(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
&data,
|
EXPECT_WRITE_PROTECTED);
|
||||||
EXPECT_WRITE_PROTECTED);
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -103,9 +101,8 @@ test_sanitize_readonly(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(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
EXPECT_WRITE_PROTECTED);
|
EXPECT_WRITE_PROTECTED);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Check if SANITIZE CRYPTO_ERASE is supported "
|
logging(LOG_VERBOSE, "Check if SANITIZE CRYPTO_ERASE is supported "
|
||||||
@@ -117,9 +114,8 @@ test_sanitize_readonly(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(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
EXPECT_WRITE_PROTECTED);
|
EXPECT_WRITE_PROTECTED);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -80,10 +80,8 @@ 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(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_OVERWRITE, data.size, &data,
|
||||||
&data,
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
EXPECT_RESERVATION_CONFLICT);
|
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -96,9 +94,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(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_BLOCK_ERASE, 0, NULL,
|
||||||
EXPECT_RESERVATION_CONFLICT);
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Check if SANITIZE CRYPTO_ERASE is supported "
|
logging(LOG_VERBOSE, "Check if SANITIZE CRYPTO_ERASE is supported "
|
||||||
@@ -110,9 +107,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(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
SANITIZE(sd, 0, 0, SCSI_SANITIZE_CRYPTO_ERASE, 0, NULL,
|
||||||
EXPECT_RESERVATION_CONFLICT);
|
EXPECT_RESERVATION_CONFLICT);
|
||||||
CU_ASSERT_EQUAL(ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mpath_sd2_put(sd2);
|
mpath_sd2_put(sd2);
|
||||||
|
|||||||
Reference in New Issue
Block a user