Commit Graph

135 Commits

Author SHA1 Message Date
Christoph Hellwig
c72edd514d test-tool: always use low-level SCSI APIs
This allows all tests to properly work on /dev/sg nodes instead
of segfaulting when a test is written the iSCSI-specific APIs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
2015-03-30 22:24:41 -07:00
Stefan Weil
86adf5847c Fix wrong checks for username
The variable user in struct iscsi_url is a character array, not a pointer.
Therefore its address will never be NULL.

When libscsi is built using clang instead of gcc, those errors are reported:

iscsi-perf.c:256:17: error:
 comparison of array 'iscsi_url->user' not equal to a null
 pointer is always true [-Werror,-Wtautological-pointer-compare]
iscsi-dd.c:272:17: error:
 comparison of array 'iscsi_url->user' not equal to a null
 pointer is always true [-Werror,-Wtautological-pointer-compare]
iscsi-dd.c:331:17: error:
 comparison of array 'iscsi_url->user' not equal to a null
 pointer is always true [-Werror,-Wtautological-pointer-compare]
ld_iscsi.c:99:18: error:
 comparison of array 'iscsi_url->user' not equal to a null
 pointer is always true [-Werror,-Wtautological-pointer-compare]

Fix those errors and also similar code patterns in aros/iscsi-ls.c and
test-tool/iscsi-support.c.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2015-03-07 09:54:38 +01:00
Stefan Weil
d7a8ab0f1e Remove trailing blanks
The files touched here need a bug fix which is applied with the
following patch.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2015-03-07 09:54:38 +01:00
Sebastian Herbszt
cb7882a84c test-tool: fix SG_IO
Handle io_hdr.resid and adjust datain.size.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
2015-02-16 15:39:31 -08:00
Ronnie Sahlberg
d69d955fa6 test-tool: SEGV when dereferencing a NULL pointer ascq array
ascq is NULL if there are no ascqs provided for this failure mode.
Do not try to dereference the 0-th element in this array before checking
that the array has at least one element.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2015-01-26 17:56:12 -08:00
Ronnie Sahlberg
58f06b0e74 TESTS: get rid of a sanitize helper
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-10-14 19:39:27 -07:00
Ronnie Sahlberg
8ac7d64082 TESTS: convert most of SANITIZE to new saner api
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-10-14 19:25:17 -07:00
Bart Van Assche
fe9620092c test tool: Detect unsupported opcodes correctly
There is no agreement among the T10 committee whether a SCSI target should
report "invalid opcode", "invalid field in CDB" or "invalid field in
parameter list" if the opcode consists of two bytes. Hence accept all three
sense codes for two-byte opcodes. For more information see also Frederick
Knight, RE: INVALID COMMAND OPERATION CODE, T10 Reflector, 16 May 2008
(http://t10.org/ftp/t10/t10r/2008/r0805167.htm).

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
2014-10-14 18:51:56 -07:00
Bart Van Assche
0763dc5743 libiscsi: Clear PS bit before sending MODE SELECT
A quote from SPC-4: "When using the MODE SENSE command, a
parameters saveable (PS) bit set to one indicates that the mode
page may be saved by the logical unit in a nonvolatile, vendor
specific location. A PS bit set to zero indicates that the device
server is not able to save the supported parameters. When using
the MODE SELECT command, the PS bit is reserved."

Hence clear the PS bit after having queried a mode page via MODE
SENSE and before changing it via MODE SELECT.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
2014-10-14 17:56:40 -07:00
Ronnie Sahlberg
14461757c4 TESTS: Allow Hardware/Software write protect as valid ASCQ
Add 0x2701/0x2702 to the list of valid ASCQ values we accept for devices
that are write protected.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-10-08 06:23:43 -07:00
Ronnie Sahlberg
45d87238e2 TESTS: Flag a whole bunch of tests as not supported on non-iSCSI backends
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-27 08:58:24 -07:00
Ronnie Sahlberg
abbf9a11b0 TESTS: change modeselect to become /dev/sg-aware
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-27 08:10:14 -07:00
Ronnie Sahlberg
47d7e4b0ac TESTS: make sure ascq_ok is initialized
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-21 15:30:40 -07:00
Ronnie Sahlberg
264ea509c8 iscsi-support.c: fix memory leaks. Thanks valgrind, you rock
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-21 15:14:51 -07:00
Ronnie Sahlberg
38798e2090 initialize task->datain.data to keep valgrind happy
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-21 15:10:38 -07:00
Ronnie Sahlberg
2af45d9ad4 initialize sense to keep valgrind happy
valgrind does not know that sense will be initialized by the ioctl
so we need to to it explicitely to keep it from warning us.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-21 14:58:12 -07:00
Ronnie Sahlberg
d11e4175f7 TESTS: Dont memcpy if task==NULL
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-19 17:33:21 -07:00
Ronnie Sahlberg
1e3cc445c8 TESTS: Remove some tests that wont work yet for /dev/sg
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-19 17:15:48 -07:00
Ronnie Sahlberg
55c1f0d2ec TESTS: Add support to test against a /dev/sg device on linux
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-19 16:26:46 -07:00
Ronnie Sahlberg
48e14f5ccf TESTS: update main program to use helpers instead of calling directly to libiscsi
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-19 06:21:02 -07:00
Ronnie Sahlberg
8ed2ad9b69 TESTS: start abstracting away the error string handling from transports
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-18 19:20:49 -07:00
Ronnie Sahlberg
5efc7bf925 TESTS: create a helper/wrapper for sending scsi commands
Create a wrapper for sending scsi_commands so that we can hide the
libiscsi function far away from the "opcode" helpers.
This means we only have a single place later to switch to a different
type of device, such as a SG_IO one.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-18 18:52:08 -07:00
Ronnie Sahlberg
072291c852 TESTS: change the function signatures for the helpers
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-18 18:19:04 -07:00
Ronnie Sahlberg
9b768f7de9 TESTS: move the default url, lun and iscsi context into a structure
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-09-18 16:42:45 -07:00
Ronnie Sahlberg
f015ab095a TESTS: update reportsupportedopcodes to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
9be6ddaf09 TESTS: update inquiry to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
398f03205d TESTS: update unmap to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
832d88797a TESTS: remove the read10_task helper
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
9e75b10103 TESTS: change get_lba_status to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
fd21a8f2c4 TESTS: convert readcapacity to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
46eaa7dcc3 TESTS: convert compareandwrite to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
44d88e3bc6 TESTS: update synchronizecache to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
1c14b9b911 TESTS: update read6 to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:22 -07:00
Ronnie Sahlberg
3ee3964332 TESTS: change testunitready to new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 14:07:21 -07:00
Ronnie Sahlberg
fe11a6178b TESTS: add ASCQ check to miscompare
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 13:12:59 -07:00
Ronnie Sahlberg
f1d198c684 TESTS: update startstopunit to use new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 13:12:58 -07:00
Ronnie Sahlberg
28b0a0ab11 TESTS: update the READ tests to the new API
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 13:12:58 -07:00
Ronnie Sahlberg
4b2e9bd417 TESTS: update the prefetch tests to the new api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:08:02 -07:00
Ronnie Sahlberg
8585e4509b TESTS: update writesame tests to new API
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:08:01 -07:00
Ronnie Sahlberg
d3f98dfdd5 TESTS: rework WRITEVERIFY* tests to the new API
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:07:59 -07:00
Ronnie Sahlberg
8ffd78c117 temp: redo the write10/12/16 commands to the new saner api
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:07:57 -07:00
Ronnie Sahlberg
8aefc7d579 TEST: update all the verify tests to a new API
Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:07:55 -07:00
Ronnie Sahlberg
138939cb0e TESTS: change ORWRITE to use a single helper function for all
Switch orwrite helpers to use _command_async instead of calling _orwrite_sync()
to prepare for switching to non-iscsi targets. Use the new check_result API
so that we only need a single helper function for ORWRITE instead of one
helper for each expected result.

Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:07:52 -07:00
Ronnie Sahlberg
905695575f TESTS: add a new helper check_result to validate the result of SCSI helpers
Many/most all SCSI helpers do pretty much the same checking for the SCSI
result and status. Break this out into a separate helper that we can use
to reduce code duplication.

Signed-off-by: Ronnie Sahlberg <sahlberg@localhost>
2014-09-18 12:07:49 -07:00
Peter Lieven
8e4e03d85d test-tool: allow get_lba_status to return provisioning type
Signed-off-by: Peter Lieven <pl@kamp.de>
2014-08-13 17:02:51 +02:00
Bart Van Assche
b631a2146c SPC-2 RESERVE tests: Use MODE SENSE instead of TEST UNIT READY
Although SPC-2 specifies that a reservation conflict should be
reported when TEST UNIT READY is received from another initiator than
the registered initiator, it is an established practice that TEST
UNIT READY is accepted in this case. Hence use the MODE SENSE command
to test the effect of the RESERVE command instead of TEST UNIT READY.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
2014-08-04 16:05:25 -07:00
Peter Lieven
d6af861c57 iscsi-test: check for invalid descriptors offsets in get_lba_status
Dell Equallogic sans report an invalid LBA offset in the descriptor when
using 4k LUNs. Check the descriptor for consistency with the request.

Signed-off-by: Peter Lieven <pl@kamp.de>
2014-07-10 14:44:16 +02:00
jpocas
69c466a6c9 - writesame10 and writesame16 were looking at the datalen, when they wanted to be looking at the number of blocks 2014-05-07 13:49:25 -04:00
Ronnie Sahlberg
717b95cb8a slist.h: rename SLIST_ to ISCSI_LIST_ to avoid clash on *BSD
Rename the macros for managing the linked lists from SLIST_* to ISCSI_LIST_*
to avoid a clash on *BSD which already have other macros SLIST_*

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2014-05-07 06:44:19 -07:00
Bart Van Assche
e8545d6a03 verify1[02]_invalidfieldincdb(): Fix an error message
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
2014-03-15 08:45:21 -07:00