Commit Graph

330 Commits

Author SHA1 Message Date
Ronnie Sahlberg
5bce69f1f3 TEST: rename the usb block device tests to usb-sbc 2013-04-27 20:39:30 -07:00
Ronnie Sahlberg
f8e317c355 TESTS: READ6 is optional(==obsolete) 2013-04-27 16:22:58 -07:00
Ronnie Sahlberg
94d048afae TESTS: Persistent reserve in/out are optional 2013-04-27 14:09:19 -07:00
Ronnie Sahlberg
4222d5fcd7 TESTS: Add another level for the test hiearchy : Familt/Suite/Test
and add 4 basic families :  ALL, SCSI, iSCSI and USB-MEMORY-STICK
2013-04-27 13:57:57 -07:00
Ronnie Sahlberg
9d44644c63 TESTS: Move the tests for iscsi residuals to its own suite 2013-04-27 10:15:30 -07:00
Ronnie Sahlberg
2627a8845e TESTS: add a flag --usb so we can clamp all i/o to at most 120k
Add checks for maximum tranfer length to all commands that are limited
by BlockLimits/MTL
2013-04-27 09:59:59 -07:00
Ronnie Sahlberg
c866787dcb TESTS: read12 is optional, should make test skip, not fail 2013-04-27 07:43:24 -07:00
Ronnie Sahlberg
227489d32b TESTS: fix PREFETCH10/16 tests 2013-04-26 18:01:04 -07:00
Ronnie Sahlberg
1331656f85 TESTS: ORWRITE is optional, lack os support should skip the test not fail it 2013-04-26 17:52:55 -07:00
Ronnie Sahlberg
78e02737c6 TESTS: fix some bugs in the tests for INQUIRY 2013-04-26 17:43:06 -07:00
Ronnie Sahlberg
e33194d94a TESTS: WRITEVERIFY10/12/16 are all optional.
Update the helpers to return -2/not supported on invalid operaction code.
Update all tests to accept that the opcode might be missing and abort the test without failing.
2013-04-25 17:41:13 -07:00
Ronnie Sahlberg
b5804ee499 TESTS: Update WRITE10/12 to allow it to fail with invalid operation code. Both these opcodes are Optional in all SBC standards. 2013-04-23 21:29:25 -07:00
Ronnie Sahlberg
ee666ae451 TESTS: WRITE16 is optional so update the tests to allow WRITE16 to be missing and just make the test be [SKIPPED] 2013-04-23 21:15:28 -07:00
Ronnie Sahlberg
284514b14e fix typo 2013-04-22 17:38:10 -07:00
Ronnie Sahlberg
79f54c5e06 TESTS update all read16 tests to fail/skip on illegal opcode depending on whether the device claims support for it or not (mandatory in sbc-3, optional prior) 2013-04-22 17:31:50 -07:00
Ronnie Sahlberg
77ff1b1808 TESTS: make the "is readcapacity16 supported on this device" tests cleaner 2013-04-22 17:11:38 -07:00
Ronnie Sahlberg
af6d1c9c13 Add a test for mandatory opcodes for SBC devices.
Note that Read16/Readcapacity16 are mandatory on SBC3 but not prior.
Not all mandatory opcodes are tested for yet.
2013-04-21 14:50:41 -07:00
Ronnie Sahlberg
a048079c90 covnert the old test suite grom popt to getopt_long 2013-04-21 10:19:40 -07:00
Ronnie Sahlberg
ecfe404316 iscsi-support.c does not need popt.h 2013-04-21 10:03:34 -07:00
Ronnie Sahlberg
fbf58ead9f TESTS: When task management functions fail, print the reason why it failed. 2013-03-27 17:25:47 -07:00
Ronnie Sahlberg
d6f4c4d259 TESTS update reserve6 tests 2013-03-25 17:49:11 -07:00
Ronnie Sahlberg
2873b18bb7 TESTS: Add tests to verify that RELEASE6 is dropped on target/lun reset 2013-03-25 17:42:24 -07:00
Ronnie Sahlberg
1f54a3068c TESTS: Add tests for residuals for WRITEVERIFY10/12/16 2013-03-24 09:29:03 -07:00
Ronnie Sahlberg
641cc997c1 TESTS: Improve WRITE* residual tests and also check that we dont write too much if iSCSI EDTL < SCSI TL 2013-03-24 09:10:01 -07:00
Ronnie Sahlberg
e1f15c8464 TESTS: Add tests that WRITE10/12/16 handle residuals correctly
Also test that IF the iSCSI layer provides 2 blocks of DATA-OUT but
the SCSI WRITE* command only covers one single block,
then only the first block will be modified but not the second block.
2013-03-24 08:56:23 -07:00
Ronnie Sahlberg
7cfcf32591 TESTS: Add tests for READ12/16 residuals 2013-03-23 15:50:57 -07:00
Ronnie Sahlberg
a95a83764a TESTS: fixup a log message to be nore accurate 2013-03-23 15:32:05 -07:00
Ronnie Sahlberg
5b29ad2ddf TESTS: Add test for READ10 to check that over/underflow residuals are generated correctly. 2013-03-23 12:44:55 -07:00
Ronnie Sahlberg
808eed9680 Make task->residual a size_t instead of an int
Update and improve the log messages for failures for the read10 invalid test
2013-03-23 11:23:02 -07:00
Ronnie Sahlberg
2d10d0a2d8 TESTS: Update the "invalid read10" test with better description and logging of what exactly it tests 2013-03-23 10:35:39 -07:00
Ronnie Sahlberg
3e358bb192 TESTS: in RESERVE6 test, allow slow targets 3 seconds to notice the nexus loss and drop the reservation 2013-03-23 10:13:03 -07:00
Lee Duncan
510883f28f fix reregister to check for resvn conflict
According to SPC, an attempt to register on
a registeried I_T Nexus with the incorrect
reservation key should produce a reservation
conflict.
2013-03-22 17:57:51 -07:00
Lee Duncan
cfc83f0b4f Reservation type not needed to register. 2013-03-22 17:56:59 -07:00
Ronnie Sahlberg
fd77387c66 TESTS: Add tests to verify a RESERVE6 is dropped on logout and it-nexus loss 2013-03-21 19:55:24 -07:00
Ronnie Sahlberg
6c0fd5cfa3 TESTS: Add RESERVE6/RELEASE6 tests 2013-03-21 19:41:32 -07:00
Ronnie Sahlberg
6a3888e39e TESTS: Old and new testsuite tested slightly different things for 0block tests
Change all tests in the old testsuite to check 0block tests 2 blocks past the end of the device, just like the new testsuite.

These tests check that we get an error if we do a 0-block read/write etc beyond the end of the device.

In the SBC standard, the only thing that discusses LBA_OUT_OF_RANGE is wordings
such as this :
	If the LBA plus the transfer length exceeds the capacity of the medium,
	then the device server shall terminate the command with CHECK CONDITION
	status with the sense key set to ILLEGAL REQUEST and the additional
	sense code set to LOGICAL BLOCK ADDRESS OUT OF RANGE.

This is very clear for when transfer length is > 0,  but what when
transfer length is == 0?

Assume we have a device that is 0x31fff in size.
With this wording, if we read 1 block at LBA : 0x31fff  we end up at 0x32000
and this is at the end, but not beyond the end.
We are reading/accessing the last block at 0x31fff and we stop at 0x32000.

Similarly, if we are reading 1 block, starting at 0x32000 and reading to 0x32001 which would be LBA_OUT_OF_RANGE since we are accessing beyond the end of the device.

The question now is what happens if we try to read 0-blocks  just at the edge at the end of the device.
I.e. What is we try to read 0 blocks at LBA:0x32000 ?

Looking at the standard, the wordings say that this should be fine.
Because the SBC standard only says that we should check LBA+transfer length.
Thus since 0x31fff + 1 block   is exactly the same as 0x32000 + 0 blocks
thus a device SHOULD allow reading of 0 blocks just at the end.

This is the conclusion from reading SBC by the letter. However It might be unreasonable to do so and it might be wiser to just stay away from this ambigous area of SBC.

Following the SBC standard by the letter,   the new test suite was wrong since it should have flagged this as a failure. But it did checks on one block beyond the blobk at the end of the device.  It checked that we would fail  for 0x32001 in the example above.

Strictly, I should have fixed the new test to check 0x32000   but I think it might be unreasonably to enforce something here for this ambigous area of "what happens when accessing 0 blocks just at the edge of the device".

So instead I have changed the OLD tests so that they now check one block further on. In the example above it means they too now check 0x32001  instead of 0x32000.
Technically speaking this is wrong,  but this is the imho reasonable thing to do.
2013-03-19 18:04:24 -07:00
Ronnie Sahlberg
f11749ca52 TEST: Add test that all mandatoryb VPD pages are available on SBC devices 2013-03-12 19:26:39 -07:00
Ronnie Sahlberg
ec70169380 TEST: Add test for the supported VPD pages and that we can read them 2013-03-12 18:41:57 -07:00
Ronnie Sahlberg
e84b71af15 TEST: Add test for EVPD bit for INQUIRY commands 2013-03-12 18:29:24 -07:00
Ronnie Sahlberg
b10641566e TESTS: Add tests for INQUIRY allocation length.
Add special test that for SPC3+ devices we do have 16 bits of alloc length available.
2013-03-11 18:32:29 -07:00
Ronnie Sahlberg
0bc415761a TESTS: Add test for standard inquiry page 2013-03-10 19:02:45 -07:00
Ronnie Sahlberg
ad0b14e833 TEST: Add a test to verify PREVENT REMOVALs are seen across all nexuses 2013-03-03 13:44:16 -08:00
Ronnie Sahlberg
0d5c8a4f11 TESTS: Add test for PREVENTALLOWMEDIUMREMOVAL are cleared on lun/target reset 2013-03-03 13:37:52 -08:00
Ronnie Sahlberg
d288d5a8b6 TESTS: Add tests for prevent/allow medium removal 2013-03-03 10:05:57 -08:00
Ronnie Sahlberg
a2fd736930 TESTS: Add tests for medium access commands when medium is ejected 2013-03-03 09:26:34 -08:00
Ronnie Sahlberg
44c789c9c8 TESTS: Add tests for STARTSTOPUNIT 2013-03-02 16:53:40 -08:00
Lee Duncan
8493ec5837 Added persistent reservation ownership tests.
Created tests for all persistent reservation types that
verifies reservation ownership based on reservation
type.
2013-02-24 08:19:30 -08:00
Lee Duncan
c4df17e794 minor cleanup of persistent reserve access test
Renamed helper function to not conflict with new
names, and cleaned up the include file list.
2013-02-24 08:03:37 -08:00
Ronnie Sahlberg
473172813b TEST: Add ORWRITE test to the READONLY device test 2013-02-19 19:32:01 -08:00
Ronnie Sahlberg
41754b45e8 TESTS: Add tests for ORWRITE 2013-02-19 19:30:51 -08:00