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:
Ronnie Sahlberg
2013-03-23 11:23:02 -07:00
parent 2d10d0a2d8
commit 808eed9680
8 changed files with 88 additions and 29 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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.
*/

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;