Make task->residual a size_t instead of an int
Update and improve the log messages for failures for the read10 invalid test
This commit is contained in:
@@ -267,7 +267,7 @@ struct scsi_task {
|
||||
unsigned char cdb[SCSI_CDB_MAX_SIZE];
|
||||
|
||||
enum scsi_residual residual_status;
|
||||
int residual;
|
||||
size_t residual;
|
||||
struct scsi_sense sense;
|
||||
struct scsi_data datain;
|
||||
struct scsi_allocated_memory *mem;
|
||||
|
||||
@@ -95,7 +95,7 @@ int T0105_read10_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (int64_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read10 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
@@ -141,7 +141,7 @@ int T0105_read10_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_UNDERFLOW ||
|
||||
task->residual != (int64_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read10 returned incorrect residual underflow.\n");
|
||||
ret = -1;
|
||||
@@ -184,7 +184,7 @@ int T0105_read10_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (int64_t)(block_size - 200)) {
|
||||
task->residual != block_size - 200) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read10 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
@@ -196,7 +196,7 @@ int T0105_read10_invalid(const char *initiator, const char *url)
|
||||
|
||||
|
||||
/* Try a read of 2 blocks but xferlength == 'block_size' */
|
||||
printf("Read10 2 blocks but with iscsi ExpectedDataTransferLength==%d ... ", block_size);
|
||||
printf("Read10 2 blocks but with iscsi ExpectedDataTransferLength==%zu ... ", block_size);
|
||||
|
||||
task = malloc(sizeof(struct scsi_task));
|
||||
if (task == NULL) {
|
||||
@@ -221,13 +221,13 @@ int T0105_read10_invalid(const char *initiator, const char *url)
|
||||
}
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read10 of 2 blocks with iscsi ExpectedDataTransferLength==%d should succeed.\n", block_size);
|
||||
printf("Read10 of 2 blocks with iscsi ExpectedDataTransferLength==%zu should succeed.\n", block_size);
|
||||
ret = -1;
|
||||
scsi_free_scsi_task(task);
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (int64_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read10 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
|
||||
@@ -95,7 +95,7 @@ int T0122_read6_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (ssize_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read6 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
@@ -141,7 +141,7 @@ int T0122_read6_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_UNDERFLOW ||
|
||||
task->residual != (ssize_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read6 returned incorrect residual underflow.\n");
|
||||
ret = -1;
|
||||
@@ -184,7 +184,7 @@ int T0122_read6_invalid(const char *initiator, const char *url)
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (ssize_t)block_size - 200) {
|
||||
task->residual != block_size - 200) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read6 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
@@ -196,7 +196,7 @@ int T0122_read6_invalid(const char *initiator, const char *url)
|
||||
|
||||
|
||||
/* Try a read of 2 blocks but xferlength == block_size */
|
||||
printf("Read6 2 blocks but with iscsi ExpectedDataTransferLength==%d ... ", block_size);
|
||||
printf("Read6 2 blocks but with iscsi ExpectedDataTransferLength==%zu ... ", block_size);
|
||||
|
||||
task = malloc(sizeof(struct scsi_task));
|
||||
if (task == NULL) {
|
||||
@@ -221,13 +221,13 @@ int T0122_read6_invalid(const char *initiator, const char *url)
|
||||
}
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read6 of 2 blocks with iscsi ExpectedDataTransferLength==%d should succeed.\n", block_size);
|
||||
printf("Read6 of 2 blocks with iscsi ExpectedDataTransferLength==%zu should succeed.\n", block_size);
|
||||
ret = -1;
|
||||
scsi_free_scsi_task(task);
|
||||
goto finished;
|
||||
}
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW ||
|
||||
task->residual != (ssize_t)block_size) {
|
||||
task->residual != block_size) {
|
||||
printf("[FAILED]\n");
|
||||
printf("Read6 returned incorrect residual overflow.\n");
|
||||
ret = -1;
|
||||
|
||||
@@ -25,7 +25,8 @@ int T0350_orwrite_simple(const char *initiator, const char *url)
|
||||
{
|
||||
struct iscsi_context *iscsi;
|
||||
struct scsi_task *task;
|
||||
int ret, i, j, lun;
|
||||
int ret, i, lun;
|
||||
unsigned int j;
|
||||
unsigned char r1data[4096 * 256];
|
||||
unsigned char r2data[4096 * 256];
|
||||
unsigned char ordata[4096 * 256];
|
||||
@@ -84,7 +85,7 @@ int T0350_orwrite_simple(const char *initiator, const char *url)
|
||||
}
|
||||
memcpy(r1data, task->datain.data, i * block_size);
|
||||
memset(ordata, 0x5a, i * block_size);
|
||||
for (j = 0; j < (int)(i * block_size); j++) {
|
||||
for (j = 0; j < i * block_size; j++) {
|
||||
r2data[j] = r1data[j] | ordata[j];
|
||||
}
|
||||
scsi_free_scsi_task(task);
|
||||
@@ -169,7 +170,7 @@ int T0350_orwrite_simple(const char *initiator, const char *url)
|
||||
memcpy(r1data, task->datain.data, i * block_size);
|
||||
memcpy(r1data, task->datain.data, i * block_size);
|
||||
memset(ordata, 0xa5, i * block_size);
|
||||
for (j = 0; j < (int)(i * block_size); j++) {
|
||||
for (j = 0; j < i * block_size; j++) {
|
||||
r2data[j] = r1data[j] | ordata[j];
|
||||
}
|
||||
scsi_free_scsi_task(task);
|
||||
|
||||
@@ -136,7 +136,7 @@ int T1020_bufferoffset_invalid(const char *initiator, const char *url)
|
||||
iscsi->use_immediate_data = ISCSI_IMMEDIATE_DATA_NO;
|
||||
iscsi->target_max_recv_data_segment_length = block_size;
|
||||
|
||||
printf("Write 2 DATA-IN with BUFFEROFFSET==-%d ... ", block_size);
|
||||
printf("Write 2 DATA-IN with BUFFEROFFSET==-%zu ... ", block_size);
|
||||
/* we dont want autoreconnect since some targets will drop the
|
||||
* on this condition.
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@ const char *initiatorname2 =
|
||||
|
||||
const char *tgt_url;
|
||||
|
||||
uint32_t block_size;
|
||||
size_t block_size;
|
||||
uint64_t num_blocks;
|
||||
int lbpme;
|
||||
int lbppb;
|
||||
|
||||
@@ -128,7 +128,7 @@ do { \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
extern uint32_t block_size;
|
||||
extern size_t block_size;
|
||||
extern uint64_t num_blocks;
|
||||
extern int lbpme;
|
||||
extern int lbppb;
|
||||
|
||||
@@ -36,7 +36,7 @@ test_read10_invalid(void)
|
||||
|
||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||
logging(LOG_VERBOSE, "Test invalid READ10 commands");
|
||||
logging(LOG_VERBOSE, "Block size is %u", block_size);
|
||||
logging(LOG_VERBOSE, "Block size is %zu", block_size);
|
||||
|
||||
/* Try a read10 of 1 block but xferlength == 0 */
|
||||
task = malloc(sizeof(struct scsi_task));
|
||||
@@ -63,14 +63,27 @@ test_read10_invalid(void)
|
||||
CU_ASSERT_NOT_EQUAL(task->status, SCSI_STATUS_CANCELLED); /* XXX redundant? */
|
||||
|
||||
logging(LOG_VERBOSE, "Verify that the target returned SUCCESS");
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target returned error %s",
|
||||
iscsi_get_error(iscsic));
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->status, SCSI_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify residual overflow flag is set");
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set residual "
|
||||
"overflow flag");
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual_status, SCSI_RESIDUAL_OVERFLOW);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got %u bytes of residual overflow",
|
||||
logging(LOG_VERBOSE, "Verify we got %zu bytes of residual overflow",
|
||||
block_size);
|
||||
CU_ASSERT_EQUAL(task->residual, (int64_t)block_size);
|
||||
if (task->residual != block_size) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set correct "
|
||||
"amount of residual. Expected %zu but got %zu.",
|
||||
block_size, task->residual);
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual, block_size);
|
||||
scsi_free_scsi_task(task);
|
||||
task = NULL;
|
||||
|
||||
@@ -93,17 +106,30 @@ test_read10_invalid(void)
|
||||
CU_ASSERT_PTR_NOT_NULL(task_ret);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify that the target returned SUCCESS");
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target returned error %s",
|
||||
iscsi_get_error(iscsic));
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->status, SCSI_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got a whole block back from the target");
|
||||
CU_ASSERT_EQUAL(task->datain.size, (int)block_size);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify residual underflow flag is set");
|
||||
CU_ASSERT_EQUAL(task->residual_status, SCSI_RESIDUAL_OVERFLOW);
|
||||
if (task->residual_status != SCSI_RESIDUAL_UNDERFLOW) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set residual "
|
||||
"underflow flag");
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual_status, SCSI_RESIDUAL_UNDERFLOW);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got %u bytes of residual underflow",
|
||||
logging(LOG_VERBOSE, "Verify we got %zu bytes of residual underflow",
|
||||
10000 - block_size);
|
||||
CU_ASSERT_EQUAL(task->residual, (int64_t)(10000 - block_size));
|
||||
if (task->residual != 10000 - block_size) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set correct "
|
||||
"amount of residual. Expected %zu but got %zu.",
|
||||
10000 - block_size, task->residual);
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual, 10000 - block_size);
|
||||
scsi_free_scsi_task(task);
|
||||
task = NULL;
|
||||
|
||||
@@ -124,17 +150,30 @@ test_read10_invalid(void)
|
||||
CU_ASSERT_PTR_NOT_NULL(task_ret);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify that the target returned SUCCESS");
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target returned error %s",
|
||||
iscsi_get_error(iscsic));
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->status, SCSI_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got 200 bytes back from the target");
|
||||
CU_ASSERT_EQUAL(task->datain.size, 200);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify residual overflow flag is set");
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set residual "
|
||||
"overflow flag");
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual_status, SCSI_RESIDUAL_OVERFLOW);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got %u bytes of residual overflow",
|
||||
logging(LOG_VERBOSE, "Verify we got %zu bytes of residual overflow",
|
||||
block_size - 200);
|
||||
CU_ASSERT_EQUAL(task->residual, (int64_t)block_size - 200);
|
||||
if (task->residual != block_size - 200) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set correct "
|
||||
"amount of residual. Expected %zu but got %zu.",
|
||||
block_size - 200, task->residual);
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual, block_size - 200);
|
||||
|
||||
scsi_free_scsi_task(task);
|
||||
task = NULL;
|
||||
@@ -142,7 +181,7 @@ test_read10_invalid(void)
|
||||
|
||||
|
||||
logging(LOG_VERBOSE, "Try reading two blocks but iSCSI expected "
|
||||
"transfer length==%u (==one block)", block_size);
|
||||
"transfer length==%zu (==one block)", block_size);
|
||||
task = malloc(sizeof(struct scsi_task));
|
||||
CU_ASSERT_PTR_NOT_NULL(task);
|
||||
|
||||
@@ -157,16 +196,29 @@ test_read10_invalid(void)
|
||||
CU_ASSERT_PTR_NOT_NULL(task_ret);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify that the target returned SUCCESS");
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target returned error %s",
|
||||
iscsi_get_error(iscsic));
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->status, SCSI_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got one whole block back from the target");
|
||||
CU_ASSERT_EQUAL(task->datain.size, (int)block_size);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify residual overflow flag is set");
|
||||
if (task->residual_status != SCSI_RESIDUAL_OVERFLOW) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set residual "
|
||||
"overflow flag");
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual_status, SCSI_RESIDUAL_OVERFLOW);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify we got one block of residual overflow");
|
||||
CU_ASSERT_EQUAL(task->residual, (int64_t)block_size);
|
||||
if (task->residual != block_size) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target did not set correct "
|
||||
"amount of residual. Expected %zu but got %zu.",
|
||||
block_size, task->residual);
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->residual, block_size);
|
||||
|
||||
scsi_free_scsi_task(task);
|
||||
task = NULL;
|
||||
@@ -189,6 +241,12 @@ test_read10_invalid(void)
|
||||
|
||||
task_ret = iscsi_scsi_command_sync(iscsic, tgt_lun, task, &data);
|
||||
CU_ASSERT_PTR_NOT_NULL(task_ret);
|
||||
|
||||
logging(LOG_VERBOSE, "Verify that the target returned SUCCESS");
|
||||
if (task->status != SCSI_STATUS_GOOD) {
|
||||
logging(LOG_VERBOSE, "[FAILED] Target returned error %s",
|
||||
iscsi_get_error(iscsic));
|
||||
}
|
||||
CU_ASSERT_EQUAL(task->status, SCSI_STATUS_GOOD);
|
||||
scsi_free_scsi_task(task);
|
||||
task = NULL;
|
||||
|
||||
Reference in New Issue
Block a user