From 3a4605d3e5b772ec55b9aaa7ff8006da381744a1 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 27 Dec 2012 07:04:23 -0800 Subject: [PATCH] TESTS: Remove some READCAPACITY16 we no longer need --- test-tool/0170_unmap_simple.c | 27 +--------------- test-tool/0171_unmap_zero.c | 27 +--------------- test-tool/0180_writesame10_unmap.c | 29 ----------------- test-tool/0181_writesame10_unmap_unaligned.c | 29 +---------------- test-tool/0190_writesame16_unmap.c | 29 ----------------- test-tool/0191_writesame16_unmap_unaligned.c | 30 +----------------- test-tool/0260_get_lba_status_simple.c | 27 +--------------- test-tool/0264_get_lba_status_beyondeol.c | 26 +-------------- test-tool/0300_readonly.c | 23 -------------- test-tool/0390_mandatory_opcodes_sbc.c | 26 +-------------- test-tool/iscsi-test.c | 33 +++++++++++--------- test-tool/iscsi-test.h | 3 ++ 12 files changed, 29 insertions(+), 280 deletions(-) diff --git a/test-tool/0170_unmap_simple.c b/test-tool/0170_unmap_simple.c index 952bd1b..0a5ef11 100644 --- a/test-tool/0170_unmap_simple.c +++ b/test-tool/0170_unmap_simple.c @@ -24,7 +24,6 @@ int T0170_unmap_simple(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, i, lun; printf("0170_unmap_simple:\n"); @@ -43,36 +42,12 @@ int T0170_unmap_simple(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - scsi_free_scsi_task(task); - if (!data_loss) { printf("data_loss flag is not set. Skipping test\n"); ret = -2; diff --git a/test-tool/0171_unmap_zero.c b/test-tool/0171_unmap_zero.c index db18278..a8b11a7 100644 --- a/test-tool/0171_unmap_zero.c +++ b/test-tool/0171_unmap_zero.c @@ -24,7 +24,6 @@ int T0171_unmap_zero(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, i, lun; printf("0171_unmap_zero:\n"); @@ -45,36 +44,12 @@ int T0171_unmap_zero(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - scsi_free_scsi_task(task); - if (!data_loss) { printf("data_loss flag is not set. Skipping test\n"); ret = -2; diff --git a/test-tool/0180_writesame10_unmap.c b/test-tool/0180_writesame10_unmap.c index c398466..7d87025 100644 --- a/test-tool/0180_writesame10_unmap.c +++ b/test-tool/0180_writesame10_unmap.c @@ -24,12 +24,9 @@ int T0180_writesame10_unmap(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int full_size; struct scsi_inquiry_logical_block_provisioning *inq_lbp; int ret, i, lun; - int lbppb; - int lbpme; int lbpws10 = 0; int anc_sup = 0; @@ -54,34 +51,8 @@ int T0180_writesame10_unmap(const char *initiator, const char *url) ret = 0; - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - lbppb = 1 << rc16->lbppbe; - lbpme = rc16->lbpme; - - scsi_free_scsi_task(task); - if (lbpme == 0){ printf("Logical unit is fully provisioned. All commands should fail with check condition.\n"); - goto finished; } /* Check that id we have logical block provisioning we also have the VPD page for it */ diff --git a/test-tool/0181_writesame10_unmap_unaligned.c b/test-tool/0181_writesame10_unmap_unaligned.c index be5ecc2..9855129 100644 --- a/test-tool/0181_writesame10_unmap_unaligned.c +++ b/test-tool/0181_writesame10_unmap_unaligned.c @@ -24,9 +24,7 @@ int T0181_writesame10_unmap_unaligned(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, i, lun; - int lbppb; printf("0181_writesame10_unmap_unaligned:\n"); printf("=================================\n"); @@ -43,37 +41,12 @@ int T0181_writesame10_unmap_unaligned(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - lbppb = 1 << rc16->lbppbe; - - scsi_free_scsi_task(task); if (lbppb < 2) { printf("LBPPB==%d Can not unmap fractional physical block\n", lbppb); diff --git a/test-tool/0190_writesame16_unmap.c b/test-tool/0190_writesame16_unmap.c index e40c7e2..d95aab9 100644 --- a/test-tool/0190_writesame16_unmap.c +++ b/test-tool/0190_writesame16_unmap.c @@ -24,12 +24,9 @@ int T0190_writesame16_unmap(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int full_size; struct scsi_inquiry_logical_block_provisioning *inq_lbp; int ret, i, lun; - int lbppb; - int lbpme; int lbpws = 0; int anc_sup = 0; @@ -54,32 +51,6 @@ int T0190_writesame16_unmap(const char *initiator, const char *url) ret = 0; - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - lbppb = 1 << rc16->lbppbe; - lbpme = rc16->lbpme; - - scsi_free_scsi_task(task); - if (lbpme == 0) { printf("LBPME not set. Skip test for CPD page 0xB2 (logical block provisioning)\n"); goto finished; diff --git a/test-tool/0191_writesame16_unmap_unaligned.c b/test-tool/0191_writesame16_unmap_unaligned.c index 9ae7553..116954b 100644 --- a/test-tool/0191_writesame16_unmap_unaligned.c +++ b/test-tool/0191_writesame16_unmap_unaligned.c @@ -24,9 +24,7 @@ int T0191_writesame16_unmap_unaligned(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, i, lun; - int lbppb; printf("0191_writesame16_unmap_unaligned:\n"); printf("=================================\n"); @@ -43,38 +41,12 @@ int T0191_writesame16_unmap_unaligned(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - lbppb = 1 << rc16->lbppbe; - - scsi_free_scsi_task(task); - if (lbppb < 2) { printf("LBPPB==%d Can not unmap fractional physical block\n", lbppb); ret = -2; diff --git a/test-tool/0260_get_lba_status_simple.c b/test-tool/0260_get_lba_status_simple.c index 753a2ca..4144959 100644 --- a/test-tool/0260_get_lba_status_simple.c +++ b/test-tool/0260_get_lba_status_simple.c @@ -24,7 +24,6 @@ int T0260_get_lba_status_simple(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, lun; printf("0260_get_lba_status_simple:\n"); @@ -43,36 +42,12 @@ int T0260_get_lba_status_simple(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send readcapacity16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("Readcapacity command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall readcapacity16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - scsi_free_scsi_task(task); - ret = 0; /* try reading one descriptor at offset 0 */ diff --git a/test-tool/0264_get_lba_status_beyondeol.c b/test-tool/0264_get_lba_status_beyondeol.c index 0dd6df6..e0c7432 100644 --- a/test-tool/0264_get_lba_status_beyondeol.c +++ b/test-tool/0264_get_lba_status_beyondeol.c @@ -24,7 +24,6 @@ int T0264_get_lba_status_beyondeol(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; int ret, lun; printf("0264_get_lba_status_beyondeol:\n"); @@ -42,34 +41,11 @@ int T0264_get_lba_status_beyondeol(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send READCAPACITY16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("READCAPACITY16 command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall READCAPACITY16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - - if (rc16->lbpme == 0){ + if (lbpme == 0){ printf("Logical unit is fully provisioned. Skipping test\n"); ret = -2; - scsi_free_scsi_task(task); goto finished; } - scsi_free_scsi_task(task); ret = 0; diff --git a/test-tool/0300_readonly.c b/test-tool/0300_readonly.c index fbb2b7d..5e439e4 100644 --- a/test-tool/0300_readonly.c +++ b/test-tool/0300_readonly.c @@ -24,13 +24,11 @@ int T0300_readonly(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; struct scsi_inquiry_standard *inq; struct scsi_mode_sense *ms; int ret, lun; unsigned char data[4096]; int full_size; - int lbpme; struct unmap_list list[1]; ret = -1; @@ -62,27 +60,6 @@ int T0300_readonly(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send READCAPACITY16 command: %s\n", iscsi_get_error(iscsi)); - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("READCAPACITY16 command: failed with sense. %s\n", iscsi_get_error(iscsi)); - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall READCAPACITY10 data. %s\n", iscsi_get_error(iscsi)); - scsi_free_scsi_task(task); - goto finished; - } - lbpme = rc16->lbpme; - - scsi_free_scsi_task(task); - if (!data_loss) { printf("--dataloss flag is not set. Skipping test\n"); ret = -2; diff --git a/test-tool/0390_mandatory_opcodes_sbc.c b/test-tool/0390_mandatory_opcodes_sbc.c index 72de152..b8579c7 100644 --- a/test-tool/0390_mandatory_opcodes_sbc.c +++ b/test-tool/0390_mandatory_opcodes_sbc.c @@ -25,9 +25,8 @@ int T0390_mandatory_opcodes_sbc(const char *initiator, const char *url) { struct iscsi_context *iscsi; struct scsi_task *task; - struct scsi_readcapacity16 *rc16; struct scsi_inquiry_standard *inq; - int ret = 0, lun, sccs, encserv, lbpme; + int ret = 0, lun, sccs, encserv; unsigned char data[4096]; int full_size; @@ -65,29 +64,6 @@ int T0390_mandatory_opcodes_sbc(const char *initiator, const char *url) return -1; } - /* find the size of the LUN */ - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send READCAPACITY16 command: %s\n", iscsi_get_error(iscsi)); - ret = -1; - goto finished; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("READCAPACITY16 command: failed with sense. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - rc16 = scsi_datain_unmarshall(task); - if (rc16 == NULL) { - printf("failed to unmarshall READCAPACITY16 data. %s\n", iscsi_get_error(iscsi)); - ret = -1; - scsi_free_scsi_task(task); - goto finished; - } - lbpme = rc16->lbpme; - scsi_free_scsi_task(task); - /* See how big this inquiry data is */ task = iscsi_inquiry_sync(iscsi, lun, 0, 0, 64); if (task == NULL || task->status != SCSI_STATUS_GOOD) { diff --git a/test-tool/iscsi-test.c b/test-tool/iscsi-test.c index c8e4f05..9f13ef2 100644 --- a/test-tool/iscsi-test.c +++ b/test-tool/iscsi-test.c @@ -44,6 +44,9 @@ const char *initiatorname2 = "iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-tes uint32_t block_size; uint64_t num_blocks; +int lbpme; +int lbppb; +int lbpme; int data_loss; int show_info; @@ -1484,7 +1487,10 @@ int main(int argc, const char *argv[]) return -1; } - /* find the size of the LUN */ + /* find the size of the LUN + All devices support readcapacity10 but only some support + readcapacity16 + */ task = iscsi_readcapacity10_sync(iscsi, lun, 0, 0); if (task == NULL) { printf("Failed to send READCAPACITY10 command: %s\n", iscsi_get_error(iscsi)); @@ -1507,19 +1513,14 @@ int main(int argc, const char *argv[]) block_size = rc10->block_size; num_blocks = rc10->lba; scsi_free_scsi_task(task); - if (num_blocks == 0xffffffff) { - task = iscsi_readcapacity16_sync(iscsi, lun); - if (task == NULL) { - printf("Failed to send READCAPACITY16 command: %s\n", iscsi_get_error(iscsi)); - iscsi_destroy_context(iscsi); - return -1; - } - if (task->status != SCSI_STATUS_GOOD) { - printf("READCAPACITY16 command: failed with sense. %s\n", iscsi_get_error(iscsi)); - scsi_free_scsi_task(task); - iscsi_destroy_context(iscsi); - return -1; - } + + task = iscsi_readcapacity16_sync(iscsi, lun); + if (task == NULL) { + printf("Failed to send READCAPACITY16 command: %s\n", iscsi_get_error(iscsi)); + iscsi_destroy_context(iscsi); + return -1; + } + if (task->status == SCSI_STATUS_GOOD) { rc16 = scsi_datain_unmarshall(task); if (rc16 == NULL) { printf("failed to unmarshall READCAPACITY16 data. %s\n", iscsi_get_error(iscsi)); @@ -1529,6 +1530,10 @@ int main(int argc, const char *argv[]) } block_size = rc16->block_length; num_blocks = rc16->returned_lba; + lbpme = rc16->lbpme; + lbppb = 1 << rc16->lbppbe; + lbpme = rc16->lbpme; + scsi_free_scsi_task(task); } iscsi_destroy_context(iscsi); diff --git a/test-tool/iscsi-test.h b/test-tool/iscsi-test.h index 039ee57..74a7b0c 100644 --- a/test-tool/iscsi-test.h +++ b/test-tool/iscsi-test.h @@ -30,6 +30,9 @@ extern const char *initiatorname2; extern uint32_t block_size; extern uint64_t num_blocks; +extern int lbpme; +extern int lbppb; +extern int lbpme; extern int data_loss; extern int show_info;