Share via


SCSI Compliance Test 2.0 (LOGO)

Note  This content applies to the Windows Logo Kit (WLK). For the latest information using the new Windows Hardware Certification Kit (HCK), see Windows HCK User's Guide on the Windows Hardware Dev Center.

Type: Automated test

Overview

The SCSI Compliance test verifies that a block storage device (RAID adapter or disk target) that is supported by the operating system fully complies with the Small Computer System Interface (SCSI) standards described in the SCSI-3 Primary Commands-3 (SPC-3) or later, and SCSI Block Commands-2 (SBC-2) or later specifications. To obtain these specifications, see the T10 Technical Committee website at T10 Technical Committee (t10.org). Ensuring that the block device and the operating system maintain compliance with these standards results in a more robust and reliable system. Although some block devices might not be using a SCSI transport, the operating system communicates with them using SCSI commands (except for individual ATA disk drives that are not part of a RAID set).

The test uses SCSI pass-through requests (IOCTL_SCSI_PASS_THROUGH) to construct and send SCSI command descriptor blocks (CDBs) to the device. The test evaluates the results of the commands to verify compliance.

Note  If you are running this test as a part of a Storage RAID Hardware-based RAID (Storage Array) submission, and your storage array supports Multipath I/O (MPIO), you must configure your MPIO to use Fail-Over Only policy, and set the target storage disk to use the same active path for all MPIO-capable disks.

Note  If you are running this test as a part of a Storage RAID Hardware-based RAID (Storage Array) submission, please make sure that LUN0 is configured as the largest size non-boot LUN.

Details

The SCSI Compliance test consists of several phases: setup, device enumeration, execution, and results reporting. The test operates in the following modes:

  • A non-destructive test run against one or more devices.
  • A destructive (allows WRITE commands) test that targets one or more specified disks.

Multiple tests are performed for each command to test compliance. The program stores the test results in a matrix, indicating the results for each command on each device. When the test is completed, a summary report of the results is generated. For debugging purposes, the length of output can be increased when the test is run interactively. It is designed to provide complete information for the submitter, so that they can address command issues.

Functionality Testing

The test sends the following commands to the device. The test runs a variety of tests for each command descriptor block (CDB) to ensure full and complete compliance. Commands that are indicated as optional must still perform correctly if you choose to implement the command. Each command can have many subtests.

TEST UNIT READY

REQUEST SENSE

FORMAT UNIT

READ (6)

WRITE (6)

INQUIRY

MODE SELECT

MODE SENSE

START STOP UNIT

PREVENT ALLOW MEDIUM REMOVAL

READ CAPACITY

READ (10)

WRITE (10)

MODE SELECT (10)

MODE SENSE (10)

PERSISTENT RESERVE IN/OUT

READ (16)

WRITE (16)

READ CAPACTIY (16)

REPORT LUNS

SECURITY PROTOCOL IN/OUT

REPORT TARGET PORT GROUPS

SET TARGET PORT GROUPS

REPORT SUPPORTED OPCODE CLEAR

Run time: 10 minutes

Log file: Scsicompliance.wtl

System restart required: No

Supported operating systems for logo or signature testing:

  • Windows 7

  • Windows Server 2008 R2

  • Windows Vista

  • Windows Server 2008

  • Windows XP

  • Windows Server 2003

Program: Scsicompliance.exe

Requirements

Software Requirements

The test tool requires the following software:

  • Supported operating system (see list above)

  • Software components included with the device that is being tested

  • Any drivers that are not shipped with the Windows operating system

  • The current release of the Windows Driver Kit

  • The latest version of the Microsoft iSCSI software initiator. To download the iSCSI software initiator, search for “iSCSI software initiator” at the Microsoft Download Center.

  • The latest version of the Microsoft iSNS server. To download the Microsoft iSNS server, search for “iSNS” at the Microsoft Download Center.

Hardware Requirements

The test tool requires the following hardware:

  • Device to be tested

  • Computer that meets the minimum software requirements

  • Windows keyboard

  • Two-button pointing device

  • Color display monitor capable of at least 1024 by 768 resolution, 32-bits per pixel, 60 Hz

  • Hard disk drive with a minimum of 20 GB available on partition C:

  • The system requires one or more SCSI, iSCSI, or Fibre Channel disks attached to the test system.

Processor

The test tool runs on the following processor architectures:

  • x86

  • x64

Running the Test

Run the test as a Driver Test Manager (DTM) job.

Command Syntax

Command option Description

scsicompliance.exe

Should be followed by options.

/device [string]

Specifies the device to be tested.

/logoprogram [string]

Specifies the type of logo program of the device to certify.

/scenario [string]

Specifies the scenario test to be run. For example, unittest or discoverytest.

[options]

Other options, which can be accessed by /? option.

 

Code Tour

File Manifest

File Location

scsicompliance.exe

[testbinroot]\nttest\driverstest\storage\wdk\

 

Test Assertions

Note  This content applies to the Windows Logo Kit (WLK). For the latest information using the new Windows Hardware Certification Kit (HCK), see Windows HCK User's Guide on the Windows Hardware Dev Center.

Title: ASSERTION: TEST UNIT READY Basic Verification Test

Description: The TEST UNIT READY command provides a means to check whether the logical unit is ready. This is not a request for a self-test. If the logical unit is able to accept an appropriate medium-access command without returning CHECK CONDITION status, this command shall return a GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.33 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: REQUEST SENSE (6) Support Test

Description: Checking to see whether Request Sense Command is supported and returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.27 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: REQUEST SENSE (6) RESPONSE CODE Test

Description: Verify that RESPONSE CODE is either 0x70 or 0x71 or 0x72 or 0x73.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.27 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: RESPONSE CODE == 0x70 or RESPONSE CODE == 0x71 or RESPONSE CODE == 0x72 or RESPONSE CODE == 0x73

Title: ASSERTION: REQUEST SENSE (6) Sense Data Length Test

Description: Verify that length of SENSE data is correct (data transferred matches data length reported by the command response).

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.27 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Additional Sense Length = Sense data size - 8

Title: ASSERTION: FORMAT UNIT test with Type 1 Protection

Description: Format Unit with longlist=0, fmtdata=0, cmplist=0, defect list format=0 and type 1 protection

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.2 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: FORMAT UNIT test with Type 2 Protection

Description: Sending Format Unit with longlist=0, fmtdata=0, cmplist=0, defect list format=0 and type 2 protection

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.2 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: FORMAT UNIT test with Type 3 Protection

Description: Sending Format Unit with longlist=0, fmtdata=0, cmplist=0, defect list format=0 and type 3 protection

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.2 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: FORMAT UNIT test with Type 0 Protection

Description: Sending Format Unit with longlist=0, fmtdata=0, cmplist=0, defect list format=0 and type 0 protection

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.2 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: READ (6) Basic Verification Test

Description: The device must return GOOD (0x0) SCSI status and the first two blocks of data correctly. This test sends two READ commands reading two different but overlapped blocks of data. Then it compares the overlapped data. It returns true if the overlapped data is the same between the read operations (implying that the two commands read the same data correctly).

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.4. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: READ (6) Sequential Read Test

Description: The device must read 1000 sequential blocks of data correctly. This test sends the command 1000 times, reading 1024 bytes of data sequentially starting at a random block address.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.4. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: All READ (6) commands succeed.

Title: ASSERTION: READ (6) Random Read Test

Description: The device must read 1000 random blocks of data correctly. This test sends the command 1000 times, reading data at random logical block address.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.4. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: All READ (6) commands succeed.

Title: ASSERTION: READ (6) Read-With-Disk-Cache-Cleared Test

Description: The device must return data correctly after clearing 12-MB disk cache. This test first reads 12 MB sequential data for later verification. Then, it clears the disk cache by reading 12 MB random data. Finally, it reads the same 12 MB sequential data to see whether the data is same as in first read.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.4. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: The 12 MB data read after cache cleared is correct.

Title: ASSERTION: WRITE (6) Basic Functionality Test

Description: The command writes one block of data to device correctly. This test compares the data we want to write and the data returned by the READ after the write operation. If the data is the same, this implies that the WRITE command writes the data to disk correctly.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.30.

Expectation: ScsiStatus == 0x0

Title: ASSERTION: WRITE (6) Sequential Write Test

Description: The command writes 1000 sequential blocks of data correctly.This test sends the command 1000 times, writing data sequentially starting at a random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.30.

Expectation: All WRITE (6) commands succeed.

Title: ASSERTION: WRITE (6) Random Write Test

Description: The command writes 1000 random blocks of data correctly.This test sends the WRITE command 1000 times, writing data at random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.30.

Expectation: All WRITE (6) commands succeed.

Title: ASSERTION: WRITE (6) Write-With-Disk-Cache-Enabled Test

Description: The command writes 12 MB of data correctly with cache enabled.This test writes 12 MB of data to disk. Then it sends a SYNCHRONIZE CACHE (10) command to synchronize the logical block address in cache with the ones in disk. Finally, it will read the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.30.

Expectation: The 12 MB data are written correctly.

Title: ASSERTION: WRITE (6) Write-With-Disk-Cache-Disabled Test

Description: The command writes 12 MB of data correctly with cache disabled.This test writes 12 MB of data to disk. Then it reads the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.30.

Expectation: The 12 MB data are written correctly.

Title: ASSERTION: INQUIRY Basic Verification Test

Description: The device must return GOOD (0x0) SCSI status and data of size smaller than or equal to 255 bytes in response to the INQUIRY command with ALLOCATION LENGTH field set to 255 (0xFF) bytes. The ALLOCATION LENGTH field specifies the maximum number of bytes that an application client has allocated for returned data.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status and data of size smaller than or equal to 255 bytes.

Title: ASSERTION: INQUIRY Test for error when PAGE CODE field is nonzero and EVPD=0

Description: Checking that an error is returned when PAGE CODE field is nonzero and EVPD=0.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x2, CHECK CONDITION

Title: ASSERTION: INQUIRY Retrieving standard inquiry data

Description: Checking whether we can retrieve standard inquiry data.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, GOOD

Title: ASSERTION: INQUIRY Checking size of standard inquiry data

Description: Standard INQUIRY data shall contain at least 36 bytes.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Data Transfer Length >= 36 bytes

Title: ASSERTION: INQUIRY Testing device type field

Description: Checking device type field to ensure it is a direct-access device.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Device Type == 0x0, Direct-access device

Title: ASSERTION: INQUIRY Testing peripheral qualifier field

Description: Checking Peripheral Qualifier field.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Peripheral qualifier field == 0

Title: ASSERTION: INQUIRY VERSION Field Test

Description: The device must return a valid VERSION field of 0x4, 0x5 or 0x6.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: VERSION is 0x4 (SPC-2) or later for non-SCSI bus type and VERSION is 0x3 (SPC)or later for SCSI bus type.

Title: ASSERTION: INQUIRY Checking RESPONSE DATA FORMAT

Description: Checking that RESPONSE DATA FORMAT == 2.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: RESPONSE DATA FORMAT == 2

Title: ASSERTION: INQUIRY Checking additional length

Description: Checking additional length field is correct.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Additional Length field == Total Data size - 5

Title: ASSERTION: INQUIRY Checking VENDOR IDENTIFICATION field

Description: Checking that VENDOR IDENTIFICATION field contains valid ASCII.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: VENDOR IDENTIFICATION field contains valid ASCII.

Title: ASSERTION: INQUIRY Checking PRODUCT IDENTIFICATION field

Description: Checking that PRODUCT IDENTIFICATION field contains valid ASCII.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: PRODUCT IDENTIFICATION field contains valid ASCII.

Title: ASSERTION: INQUIRY Checking PRODUCT REVISION LEVEL field

Description: Checking that PRODUCT REVISION LEVEL field contains valid ASCII.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: PRODUCT REVISION LEVEL field contains valid ASCII.

Title: ASSERTION: INQUIRY Command Support Data Tes.

Description: The device must set the HiSup bit in the Standard Inquiry Data.

Reference: SCSI Architecture Model - 3 (SAM-3) Revision 14 (or later) specification Section 4.9.2 https://www.t10.org/ftp/t10/drafts/sam3/sam3r14.pdf

Expectation: HiSup bit is set in Standard Inquiry Data.

Title: ASSERTION: INQUIRY Checking for Supported Vital Product Pages

Description: Checking to see whether Vital Product Pages are supported.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.4. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: List of Supported Vital Product Data Pages is returned.

Title: ASSERTION: INQUIRY Testing access to each supported Vital Product Data Page

Description: Attempting to access each supported Vital Product Data Page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.4. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Each supported page is accessible (up to 255 bytes).

Title: ASSERTION: INQUIRY Attempting Unit Serial Number Page 0x80

Description: Checking whether Unit Serial Number Page 0x80 is supported and is valid ASCII.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 7.6.10. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0 and result is valid ASCII.

Title: ASSERTION: INQUIRY Attempting Device identification Page 0x83

Description: Checking whether Device identification Page 0x83 is supported.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 7.6.3. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: INQUIRY Checking Identification Descriptors in VPD page 0x83

Description: Checking that Identification Descriptors contain meaningful data.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 7.6.3. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: All descriptors are compliant and contain meaningful data.

Title: ASSERTION: INQUIRY Checking Version Descriptors

Description: Checking that Version Descriptors are compliant.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Version descriptors exist.

Title: ASSERTION: INQUIRY Checking RMB bit

Description: For devices into which we can't insert/remove media, example: UFD, RMB bit should be set to 0. For devices into which we can insert/remove media, example: USB card reader, RMB bit should be set to 1. This test is run only on removable storage devices.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Correct value for RMB bit depending on the device.

Title: ASSERTION: MODE SELECT (6) Basic Test

Description: Checking to see whether a simple MODE SELECT command, with PF and SP == 0, passes.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Attempting to get Caching mode page

Description: Checking to see whether a simple MODE SENSE command on Page 0x08 will return GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Checking Parameters Savable (PS bit).

Description: Checking to see whether Parameters Savable bit for the Caching Mode Page is 1.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: PS == 1

Title: MODE SELECT 6: MODE SENSE (6) Checking Mode Parameter Header

Description: Verify that MediumType == 0 and BlockDescriptorLength == 0.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: MediumType == 0x0 and BlockDescriptorLength == 0x0

Title: MODE SELECT 6: MODE SENSE (6) Checking Caching Mode Page Length

Description: Checking that the Caching Mode Page is 20 bytes.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: cachePageLength == 20 bytes

Title: MODE SELECT 6: MODE SENSE (6) Getting Changeable values

Description: Saving away Changeable Values for Caching Mode Page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Getting default values

Description: Saving away Default Values for Caching Mode Page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT (6) Changing WCE.

Description: Applying MODE SELECT to WCE=0 for the device.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Checking that WCE has been cleared

Description: Checking that the previous MODE SELECT command actually changed the current mode parameters.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: WCE is clear.

Title: MODE SELECT 6: MODE SENSE (6) Checking that Saved Values have changed

Description: Checking that the previous MODE SELECT command actually changed the saved mode parameters.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Saved values have changed.

Title: MODE SELECT (6) setting WCE

Description: Applying MODE SELECT to set WCE.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Checking that WCE has been set.

Description: Checking that the previous MODE SELECT command actually set WCE.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Current values have been set.

Title: MODE SELECT (6) Attempting to restore original values.

Description: Testing whether MODE SELECT can return the Caching Mode Page values to their original values.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 6: MODE SENSE (6) Verifying values were restored.

Description: Checking that the values were restored in the Caching Mode Page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.7 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Current values equal default values.

Title: ASSERTION: RESERVE (6) Support Test

Description: Checking that the Reserve Command is supported and returns GOOD status.

Reference: Refer to SPC-2 (SCSI Primary Commands - 2) specification Section 7.22.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: RELEASE (6) Support Test

Description: Checking that the Release Command is supported and returns GOOD status.

Reference: Refer to SPC-2 (SCSI Primary Commands - 2) specification Section 7.17.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: MODE SENSE (6) Basic Test

Description: Checking that a simple MODE SENSE command on Page 0x3f will return GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: MODE SENSE (6) Checking size of returned data

Description: Checking that we receive a minimum amount of data (that is, at least the MODE PARAMETER HEADER).

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Data Transfer Length >= 4 bytes

Title: ASSERTION: MODE SENSE (6) Checking MODE PARAMETER HEADER

Description: Checking that the MODE PARAMETER HEADER length information is valid.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ModeDataLength = Data Transfer Length - 1 = -1 bytes

Title: MODE SENSE (6) Test DBD (disable block descriptors) bit

Description: Testing to make sure that, when DBD bit is set, no block descriptors are returned.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Block Descriptor Length = 0

Title: MODE SENSE (6) Testing new data length when DBD bit is set

Description: Testing that new data length should equal old data length minus block descriptor length.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: New Data Length = Old Data Length

Title: MODE SENSE (6) Comparing MODE PAGE data before and after DBD bit is set

Description: Testing that page data is the same before and after DBD bit is set.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Page data will match.

Title: MODE SENSE (6) Testing Page Control Field

Description: Testing different values of the Page control field, and enforcing the size of the data returned.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Data length for each value of PC is correct.

Title: MODE SENSE (6) Scanning All Mode Pages

Description: Checking Mode Page 0x3f data to examine supported mode pages.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: To find supported mode pages: Information Exception control mode page and Caching mode page.

Title: MODE SENSE (6) Ensuring mandatory mode pages are supported

Description: Checking that required mode pages are present in MODE PAGE 0x3f.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Caching and Informational Exception pages are supported, at a minimum.

Title: MODE SENSE (6) Checking Individual Mode Pages

Description: Testing to ensure we can access each individual mode page, and that the paremeters are correct

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Pages should be returned and the headers should be compliant.

Title: MODE SENSE (6) Checking Informational Exception Mode Page

Description: Ensuring Informational Exception mode page is compliant.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Power Condition mode page is supported.

Title: MODE SENSE (6) Checking Power Condition Mode Page

Description: Ensuring Power Condition mode page is compliant.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Informational Exception mode page is supported.

Title: MODE SENSE (6) Checking Caching Mode Page.

Description: Ensuring Caching mode page is compliant.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Caching mode page is supported.

Title: MODE SENSE (6) Checking Device Specific Parameters

Description: Tests whether the Device specific parameters are supported.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.9 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Nothing.

Title: ASSERTION: START STOP UNIT Basic Test 1

Description: Sending StartStopUnit with IMMED=0, LOEJ=0, START=0, expect no action

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT Basic Test 2

Description: Sending StartStopUnit with IMMED=0, LOEJ=0, START=1, expect no action.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT Basic Test 3

Description: Sending StartStopUnit with IMMED=1, LOEJ=0, START=0, expect no action.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT Basic Test 4

Description: Sending StartStopUnit with IMMED=1, LOEJ=0, START=1, expect no action.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT unload test with IMMED bit clear

Description: Sending StartStopUnit with IMMED=0, LOEJ=1, START=0, medium should be unloaded.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: SCSI status is 0x2 (CHECK).

Title: ASSERTION: START STOP UNIT load test with IMMED bit clear

Description: Sending StartStopUnit with IMMED=0, LOEJ=1, START=1, medium should be loaded.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT unload test with IMMED bit set

Description: Sending StartStopUnit with IMMED=1 LOEJ=1, START=0, medium should be unloaded.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: START STOP UNIT load test with IMMED bit set

Description: Sending StartStopUnit with IMMED=1 LOEJ=1, START=0, medium should be loaded.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.17 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: RECEIVE DIAGNOSTIC RESULTS Page Code Valid Test

Description: On receiving this command without a prior Send Diagnostic results command, device should not go into bad state.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.18 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: RECEIVE DIAGNOSTIC RESULTS Page Code Test

Description: Device should return the diagnostic pages specified in the PAGE CODE field, which are the control mode page and informational exception control mode page .

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.18 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return diagnostic page for the page asked.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Page Basic Verification Test

Description: Logical units that support this command shall implement, at a minimum, the default self-test feature.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Background Short self-test

Description: The device shall start its short self-test in the background mode followed by a response to receive diagnostic results command. Device shall ignore DEVOFFL bit and UNITOFFL bit.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Background Extended self-test

Description: The device shall start its Extended self-test in the background mode followed by a response to receive diagnostic results command.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Abort Background self-test

Description: The device shall abort the current self-test running in background mode.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Foreground Short self-test

Description: The device shall start its short self-test in the foreground mode followed by a response to receive diagnostic results command.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: SEND DIAGNOSTIC RESULTS Foreground Extended self-test

Description: The device shall start its Extended self-test in the foreground mode followed by a response to receive diagnostic results command.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.28 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: PREVENT ALLOW MEDIUM REMOVAL prevent bit set test

Description: Sending Prevent Allow Medium Removal with prevent bit set to 01.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.13 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status if it supports CDB, else return CHECH CONDITION andset sense key/ASC/ASCQ to 5/20/0 accordingly.

Title: ASSERTION: PREVENT ALLOW MEDIUM REMOVAL prevent bit clear test

Description: Sending Prevent Allow Medium Removal with prevent bit set to 00.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.13 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: READ CAPACITY (10) Basic Verification Test

Description: The device must return GOOD (0x0) SCSI status and 8 bytes of parameter data describing the capacity and medium format of the block device to the data-in buffer.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.10 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: READ CAPACITY (10) PMI Test

Description: Send a READ CAPACITY command with the Partial Medium Indicator (PMI) set to 1. It indicates that the RETURNED LOGICAL BLOCK ADDRESS and BLOCK LENGTH IN BYTES are those of the last logical block address before a substantial delay in data transer may be encountered.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.10 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The returned LOGICAL BLOCK ADDRESS shall be greater than or equal to the logical block address specified by the RELADR and LOGICAL BLOCK ADDRESS fields in the command descriptor block.

Title: ASSERTION: READ CAPACITY (10) Negative Test

Description: Send a READ CAPACITY command with the Partial Medium Indicator (PMI) bit zero but the LOGICAL BLOCK ADDRESS non-zero.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.10 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device should return a CHECK CONDITION (2h) status and the sense key be set to ILLEGAL REQUEST with the additional sense code set to ILLEGAL FIELD IN CDB (24h).

Title: ASSERTION: READ (10) Basic Functionality Test

Description: The command reads the first two blocks of data correctly.This test sends two READ commands reading two different but overlapped blocks of data. Then it compares the overlapped data. It returns true if the overlapped data is the same between the read operations (implying that the two commands read the same data correctly).

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.5. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: Scsi Status == 0x0

Title: ASSERTION: READ (10) Sequential Read Test

Description: The command reads 1000 sequential blocks of data correctly.This test sends the command 1000 times, reading data sequentially starting at a random logical block addresses.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.5. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: All READ (10) commands succeed.

Title: ASSERTION: READ (10) Random Read Test

Description: The command reads 1000 random blocks of data correctly.This test sends the command 1000 times, reading data at random logical block addresses.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.5. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: All READ (10) commands succeed.

Title: ASSERTION: READ (10) Read-With-Disk-Cache-Cleared Test

Description: The command reads 12 MB of data correctly with disk cache cleared.This test first reads 12 MB sequential data for later verification. Then, it clears the disk cache by reading 12 MB random data. Finally, it reads the same 12 MB sequential data to see whether the data is same as the one in first read.

Reference: SCSI-3 Block Commands (SBC) specification Revision 8c Section 6.1.5. https://www.t10.org/ftp/t10/drafts/sbc/sbc-r08c.pdf

Expectation: The 12 MB data read after cache cleared is correct.

Title: ASSERTION: WRITE (10) Basic Functionality Test

Description: The command writes one block of data to device correctly.This test compares the data we want to write and the data returned by the READ after the write operation. If the data is the same, this implies that the WRITE command writes the data to disk correctly.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: ScsiStatus == 0x0

Title: ASSERTION: WRITE (10) Sequential Write Test

Description: The command writes 1000 sequential blocks of data correctly.This test sends the command 1000 times, writing data sequentially starting at a random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: All WRITE (10) commands succeed.

Title: ASSERTION: WRITE (10) Random Write Test

Description: The command writes 1000 random blocks of data correctly.This test sends the WRITE command 1000 times, writing data at random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: All WRITE (10) commands succeed.

Title: ASSERTION: WRITE (10) Write-With-Disk-Cache-Enabled Test

Description: The command writes 12 MB of data correctly with cache enabled.This test writes 12 MB of data to disk. Then it sends a SYNCHRONIZE CACHE (10) command to synchronize the logical block address in cache with the ones in disk. Finally, it will read the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: The 12 MB data are written correctly.

Title: ASSERTION: WRITE (10) Write-With-Disk-Cache-Disabled Test

Description: The command writes 12 MB of data correctly with cache disabled.This test writes 12 MB of data to disk. Then it reads the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: The 12 MB data are written correctly.

Title: ASSERTION: WRITE (10) FUA Test

Description: The command writes data to disk correctly with cache and Force Unit Access (FUA) on.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.31.

Expectation: Data is written correctly to disk with FUA on. Checksums of all WRITE (10) are correct.

Title: ASSERTION: MODE SELECT (10) Basic Test

Description: Checking that a simple MODE SELECT command, with PF and SP == 0, passes.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Attempting to get Caching mode page

Description: Checking that a simple MODE SENSE command on Page 0x08 will return GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Checking Parameters Savable (PS bit).

Description: Checking that Parameters Savable bit for the Caching Mode Page is 1.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: PS == 1

Title: MODE SELECT 10: MODE SENSE (10) Checking Mode Parameter Header

Description: Verify that MediumType == 0 and BlockDescriptorLength == 0.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: MediumType == 0x0 and BlockDescriptorLength == 0x0.

Title: MODE SELECT 10: MODE SENSE (10) Checking Caching Mode Page Length

Description: Checking that the Caching mode page is 20 bytes.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: cachePageLength == 20 bytes

Title: MODE SELECT 10: MODE SENSE (10) Getting Changeable values

Description: Saving away Changeable Values for Caching mode page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Getting default values

Description: Saving away Default Values for Caching mode page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT (10) Changing WC.

Description: Applying MODE SELECT to WCE=0 for the device.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Checking that WCE has been cleared

Description: Checking that the previous MODE SELECT command actually changed the current mode parameters.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: WCE is clear.

Title: MODE SELECT 10: MODE SENSE (10) Checking that Saved Values have changed

Description: Checking that the previous MODE SELECT command actually changed the saved mode parameters.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Saved values have changed.

Title: MODE SELECT (10) setting WCE

Description: Applying MODE SELECT to set WCE.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Checking that WCE has been set

Description: Checking that the previous MODE SELECT command actually set WCE.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Current values have been set.

Title: MODE SELECT (10) Attempting to restore original values

Description: Testing MODE SELECT can return the Caching mode page values to their original values.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: MODE SELECT 10: MODE SENSE (10) Verifying values were restored

Description: Checking that the values were restored in the Caching mode page.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.8 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Current values equal default values.

Title: ASSERTION: RESERVE (10) Support Test

Description: Checking that the Reserve (10) Command is supported and returns GOOD status.

Reference: Refer to SPC-2 (SCSI Primary Commands - 2) specification Section 7.21.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: RELEASE (10) Support Test

Description: Checking that the Release (10) Command is supported and returns GOOD status.

Reference: Refer to SPC-2 (SCSI Primary Commands - 2) specification Section 7.16.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: MODE SENSE (10) Basic Test

Description: Checking that a simple MODE SENSE10 command on Page 0x3f will return GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: MODE SENSE (10) Checking size of returned data

Description: Checking that we receive a minimum amount of data (that is, at least the MODE PARAMETER HEADER).

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Data Transfer Length >= 8 bytes

Title: ASSERTION: MODE SENSE (10) Checking MODE PARAMETER HEADER

Description: Checking that the MODE PARAMETER HEADER length information is valid.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ModeDataLength = Data Transfer Length - 2 = -2 bytes

Title: MODE SENSE (10) Test DBD (disable block descriptors) bit

Description: Testing that, when DBD bit is set, no block descriptors are returned.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Block Descriptor Length = 0

Title: MODE SENSE (10) Comparing MODE PAGE data before and after DBD bit is set

Description: Testing that page data is the same before and after DBD bit is set.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Page data will match.

Title: MODE SENSE (10) Testing Page Control Field

Description: Testing different values of the Page control field, and enforcing the size of the data returned.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.10 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Data length for each value of PC is correct and PC=0 and PC=2 return good status.

Title: ASSERTION: PERSISTENT RESERVE OUT : REGISTER AND IGNORE EXISTING KEY Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action REGISTER AND IGNORE EXISTING KEY is supported and returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Support Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS with minimum ALLOCATION LENGTH is supported, returns GOOD status, and appropriate ADDITIONAL LENGTH.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, DataTransferLength == ALLOCATION LENGTH, ADDITIONAL LENGTH != 0, and ADDITIONAL LENGTH == 0.

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Functional Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS with full ALLOCATION LENGTH returns the known key previously registered.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, ADDITIONAL LENGTH == previous ADDITIONAL LENGTH, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : RESERVE Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action RESERVE, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Support Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION with minimum ALLOCATION LENGTH is supported, returns GOOD status, and appropriate ADDITIONAL LENGTH.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, DataTransferLength == ALLOCATION LENGTH, ADDITIONAL LENGTH != 0, and ADDITIONAL LENGTH is mulitple of 8.

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Functional Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION with full ALLOCATION LENGTH returns the known key previously reserved.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, ADDITIONAL LENGTH == previous ADDITIONAL LENGTH, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : RELEASE Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action RELEASE, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION returns list without previously released key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list does not contain known key.

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list with previously registered key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list still contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : REGISTER Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action REGISTER is supported and returns GOOD status when SERVICE ACTION RESERVATION KEY = 0.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list without previously unregistered key or null key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list does not contain known key, list does not contain the null key.

Title: ASSERTION: PERSISTENT RESERVE OUT : REGISTER AND IGNORE EXISTING KEY Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action REGISTER AND IGNORE EXISTING KEY with APTPL = 1 returns GOOD status or CHECK CONDITION with ILLEGAL REQUEST.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list with registered key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : RESERVE Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action RESERVE, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION returns list with previously reserved key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : CLEAR Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action CLEAR, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking to see if the PERSISTENT RESERVE IN with service action READ RESERVATION returns list without previously cleared key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list does not contain known key.

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list without previously cleared key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list does not contain known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : REGISTER AND IGNORE EXISTING KEY Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action REGISTER AND IGNORE EXISTING KEY is supported and returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list with registered key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : RESERVE Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action RESERVE, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION returns list with previously reserved reservation with current initiator's key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : PREEMPT Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action PREEMPT, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION returns list without previously preempted key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list does not contain known key.

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list with known key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : PREEMPT AND ABORT Support Test

Description: Checking that the PERSISTENT RESERVE OUT with service action PREEMPT AND ABORT, LU_SCOPE, Write Exclusive - Registrants Only, and previously registered key returns GOOD status.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.12 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: PERSISTENT RESERVE IN : READ RESERVATION Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ RESERVATION returns list with known key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE IN : READ KEYS Verification Test

Description: Checking that the PERSISTENT RESERVE IN with service action READ KEYS returns list with known key.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0, list contains known key.

Title: ASSERTION: PERSISTENT RESERVE OUT : REGISTER AND IGNORE EXISTING KEY Support Test

Description: Clean up test environment for latter test.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.11 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: ScsiStatus == 0x0

Title: ASSERTION: READ (16) Support Test

Description: Verify that the device supports the READ (16) command.This test issues a simple READ (16) command and checks whether the return code is 0x2 (meaning not supported).

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.10.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: READ (16) Basic Functionality Test

Description: The command reads the first two blocks of data correctly. This test sends two READ commands reading two different but overlapped blocks of data. Then it compares the overlapped data. It returns true if the overlapped data is the same between the read operations (implying that the two commands read the same data correctly).

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.10.

Expectation: Scsi Status is 0x0.

Title: ASSERTION: READ (16) Sequential Read Test

Description: The device must read 1000 sequential blocks of data correctly. This test sends the command 1000 times, reading data sequentially starting at a random logical block address.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.10.

Expectation: All READ (16) commands succeed.

Title: ASSERTION: READ (16) Random Read Test

Description: The command reads 1000 random blocks of data correctly.This test sends READ (16) command 1000 times, reading data at random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.10.

Expectation: All READ (16) commands succeed.

Title: ASSERTION: READ (16) Read-With-Disk-Cache-Cleared Test

Description: The command reads 12 MB of data correctly with disk cache cleared.This test first reads 12 MB sequential data for later verification. Then, it clears the disk cache by reading 12 MB random data. Finally, it reads the same 12 MB sequential data to see if the data is same as the data in the first read.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.10.

Expectation: The 12 MB data read after cache cleared is correct.

Title: ASSERTION: WRITE (16) Support Test

Description: Verify that the device supports the command. This test issues a simple WRITE (16) command and checks whether the return code is 0x2 (Check Condition).

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: ScsiStatus == 0x0

Title: ASSERTION: WRITE (16) Basic Functionality Test

Description: The command writes one block of data to device correctly.This test compares the data we want to write and the data returned by the READ after the write operation. If the data are the same, this implies that the WRITE command writes the data to disk correctly.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: ScsiStatus == 0x0

Title: ASSERTION: WRITE (16) Sequential Write Test

Description: The command writes 1000 sequential blocks of data correctly.This test sends the command 1000 times, writing data sequentially starting at a random logical block address.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: All WRITE (16) commands succeed.

Title: ASSERTION: WRITE (16) Random Write Test

Description: The command writes 1000 random blocks of data correctly.This test sends the WRITE command 1000 times, writing data at random logical block addresses.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: All WRITE (16) commands succeed.

Title: ASSERTION: WRITE (16) Write-With-Disk-Cache-Enabled Test

Description: The command writes 12 MB of data correctly with cache enabled.This test writes 12 MB of data to disk. Then it sends a SYNCHRONIZE CACHE (10) command to synchronize the logical block addresses in cache with the ones in disk. Finally, it will read the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: The 12 MB data returned by the WRITEs is correct.

Title: ASSERTION: WRITE (16) Write-With-Disk-Cache-Disabled Test

Description: The command writes 12 MB of data correctly with cache disabled.This test writes 12 MB of data to disk. Then, it reads the same 12 MB data that has just been written to verify that the data we just wrote are correct.

Reference: Refer to SBC-2 (SCSI Block Commands) specification revision 8 Section 5.2.33.

Expectation: The 12 MB data are written correctly.

Title: ASSERTION: READ CAPACITY (16) Allocation length test

Description: The device must return GOOD (0x0) SCSI status and even though allocation length is set to 0 value.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.11 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI statu.s

Title: ASSERTION: READ CAPACITY (16) Basic Verification Test

Description: The device must return GOOD (0x0) SCSI status and 8 bytes of parameter data describing the capacity and medium format of the block device to the data-in buffer.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.11 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device must return GOOD (0x0) SCSI status.

Title: ASSERTION: READ CAPACITY (16) PMI Test

Description: Send a READ CAPACITY command with the Partial Medium Indicator (PMI) set to 1. It indicates that the RETURNED LOGICAL BLOCK ADDRESS and BLOCK LENGTH IN BYTES are those of the last logical block address before a substantial delay in data transer may be encountered.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.11 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The returned LOGICAL BLOCK ADDRESS shall be greater than or equal to the logical block address specified by the RELADR and LOGICAL BLOCK ADDRESS fields in the command descriptor block.

Title: ASSERTION: READ CAPACITY (16) Negative Test

Description: Send a READ CAPACITY command with the Partial Medium Indicator (PMI) bit zero but the LOGICAL BLOCK ADDRESS non-zero.

Reference: SCSI Block Commands - 2 (SBC-2) Revision 16 (or published) specification Section 5.11 https://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf

Expectation: The device should return a CHECK CONDITION (2h) status and the sense key be set to ILLEGAL REQUEST with the additional sense code set to ILLEGAL FIELD IN CDB (24h).

Title: ASSERTION: REPORT LUNS Basic Verification Test

Description: Attempts to find the LUN 0 corresponding to D.U.T. and execute the REPORT LUNS command. This test will only send REPORT LUNS to LUN 0 at the current target address per SAM-3. This test will only issue a request with SELECT REPORT set to zero per SPC-3.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.21 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status and data of size smaller than or equal to 255 bytes.

Title: ASSERTION: REPORT LUNS LUN0 Test

Description: This test will only send REPORT LUNS to LUN 0 at the current target address per SAM-3. This test will only issue a request with SELECT REPORT set to zero per SPC-3.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.21 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status and data of size smaller than or equal to 255 bytes.

Title: ASSERTION: REPORT LUNS Data valid Test

Description: This test will only send REPORT LUNS to LUN 0 at the current target address per SAM-3. This test will only issue a request with SELECT REPORT set to zero per SPC-3.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.21 https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Each reported LUN uses single level numbers restricted to less than or equal to 255.

Title: ASSERTION: SECURITY PROTOCOL OUT Basic Test

Description: This test sends SPOUT command to device unit before sending SPIN next.

Reference: SCSI Primary Commands - 4 (SPC-4) Revision 17 (or published) specification Section 6.31 https://www.t10.org/ftp/t10/drafts/spc4/spc4r17.pdf

Expectation: Devices that understand IEEE 1667 silo commands must return GOOD (0x0) SCSI status and devices that don't can return check condition.

Title: ASSERTION: SECURITY PROTOCOL IN Basic Test

Description: This test sends SPIN command followed by test unit ready to check whether device is in bad state to accept further commands.

Reference: SCSI Primary Commands - 4 (SPC-4) Revision 17 (or published) specification Section 6.30 https://www.t10.org/ftp/t10/drafts/spc4/spc4r17.pdf

Expectation: Devices that understand IEEE 1667 silo commands must return GOOD (0x0) SCSI status and devices that don't can return check condition and then respond to TUR with GOOD SCSI status.

Title: ASSERTION: REPORT TARGET PORT GROUPS Basic Verification Test

Description: Check whether test can get target port groups information with this command.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.25. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Scsi status == 0

Title: ASSERTION: REPORT TARGET PORT GROUPS Response Data Format Test

Description: Check whether test can get target port groups information in valid format with this command.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.25. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Response Data Format is correct.

Title: ASSERTION: SET TARGET PORT GROUPS Check Information can be Set

Description: Check whether test can set target port groups information with this command. Get target port groups information; then set target port groups; read target port groups information to do comparison.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.31. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: Group Information is set. SCSI status should be 0 or sense code should be 2A/06 for Report Target Port Group CDB after setting.

Title: ASSERTION: REPORT SUPPORTED OP CODES with RTCD clear

Description: This test requests information on commands the addressed logical unit supports; command timeouts descriptor shall not be included in any parameter data returned.This test is run only on USB devices.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status along with all supported op codes in requested format.

Title: ASSERTION: REPORT SUPPORTED OP CODES with RTCD set

Description: This test requests information on commands the addressed logical unit supports; command timeouts descriptor shall be included in each command descriptor that is returned in parameter data. This test is run only on USB devices.

Reference: SCSI Primary Commands - 3 (SPC-3) Revision 23 (or published) specification Section 6.4.2. https://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

Expectation: The device must return GOOD (0x0) SCSI status along with all supported op codes in requested format.

 

 

Build date: 9/14/2012