From 14cc8facc12dfa475fb75bac8bbf5ce11239a8e0 Mon Sep 17 00:00:00 2001 From: David Disseldorp Date: Thu, 29 Dec 2016 15:07:17 +0100 Subject: [PATCH] TESTS: fix ExtendedCopy.ValidTgtDescr for SPC-4 With SPC-4, the 0xE4 descriptor LU ID TYPE field should be ignored, and the NUL bit is obsolete. Update the ValidTgtDescr accordingly. Signed-off-by: David Disseldorp --- .../test_extendedcopy_validate_tgt_descr.c | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test-tool/test_extendedcopy_validate_tgt_descr.c b/test-tool/test_extendedcopy_validate_tgt_descr.c index 173958a..949d65f 100644 --- a/test-tool/test_extendedcopy_validate_tgt_descr.c +++ b/test-tool/test_extendedcopy_validate_tgt_descr.c @@ -31,6 +31,8 @@ void test_extendedcopy_validate_tgt_descr(void) { int tgt_desc_len = 0, seg_desc_len = 0, offset = XCOPY_DESC_OFFSET; + int ret; + struct scsi_inquiry_standard *std_inq; struct iscsi_data data; unsigned char *xcopybuf; @@ -39,6 +41,12 @@ test_extendedcopy_validate_tgt_descr(void) CHECK_FOR_DATALOSS; + ret = inquiry(sd, &task, 0, 0, 260, + EXPECT_STATUS_GOOD); + CU_ASSERT_EQUAL(ret, 0); + std_inq = scsi_datain_unmarshall(task); + CU_ASSERT_NOT_EQUAL(std_inq, NULL); + data.size = XCOPY_DESC_OFFSET + get_desc_len(IDENT_DESCR_TGT_DESCR) + get_desc_len(BLK_TO_BLK_SEG_DESCR); @@ -57,8 +65,19 @@ test_extendedcopy_validate_tgt_descr(void) populate_param_header(xcopybuf, 1, 0, 0, 0, tgt_desc_len, seg_desc_len, 0); - EXTENDEDCOPY(sd, &data, EXPECT_INVALID_FIELD_IN_CDB); + if (std_inq->version >= 6) { + /* SPC-4 - LU ID should be ignored "*/ + EXTENDEDCOPY(sd, &data, EXPECT_STATUS_GOOD); + } else { + /* SPC-3 - LU ID is reserved */ + EXTENDEDCOPY(sd, &data, EXPECT_INVALID_FIELD_IN_CDB); + } + if (std_inq->version >= 6) { + /* NUL bit is obsolete in SPC-4 */ + CU_PASS("[SKIPPED] Target is SPC-4+. Skipping NUL bit test"); + return; + } logging(LOG_VERBOSE, "Test NUL bit in target descriptor"); /* NUL bit */ memset(xcopybuf, 0, data.size);