TESTS: Remove some READCAPACITY16 we no longer need

This commit is contained in:
Ronnie Sahlberg
2012-12-27 07:04:23 -08:00
parent 5ad957b873
commit 3a4605d3e5
12 changed files with 29 additions and 280 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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