Files
libiscsi/Makefile.am
Ronnie Sahlberg 9e9c6946c0 TESTS: Add a test that a target handles an unsolicited DATA-OUT correctly.
Send a large number of DATA-OUT PDUs that do not have a matching SCSI-COMMAND
PDU and verify that the target responds correctly. Either by terminating the
session or by just ignoring the data.

Verify also that the target is not "surprised" and crashes.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2012-10-30 18:44:35 -07:00

176 lines
6.9 KiB
Makefile

# Generic definitions
ACLOCAL_AMFLAGS =-I m4
AUTOMAKE_OPTIONS = foreign subdir-objects
AM_CPPFLAGS=-I. -I$(srcdir)/include "-D_U_=__attribute__((unused))"
AM_CFLAGS=$(WARN_CFLAGS)
LDADD = lib/libiscsi.la -lpopt
EXTRA_DIST = autogen.sh COPYING LICENCE-GPL-2.txt LICENCE-LGPL-2.1.txt \
packaging/RPM/libiscsi.spec.in packaging/RPM/makerpms.sh
# Simplify conditions below by declaring variables as empty
bin_PROGRAMS =
noinst_PROGRAMS =
EXTRA_PROGRAMS =
# libiscsi shared library
iscsi_includedir = $(includedir)/iscsi
dist_iscsi_include_HEADERS = include/iscsi.h include/scsi-lowlevel.h
dist_noinst_HEADERS = include/iscsi-private.h include/md5.h include/slist.h
dist_noinst_DATA = lib/libiscsi.syms
lib_LTLIBRARIES = lib/libiscsi.la
lib_libiscsi_la_SOURCES = \
lib/connect.c lib/crc32c.c lib/discovery.c lib/init.c \
lib/login.c lib/md5.c lib/nop.c lib/pdu.c lib/scsi-command.c \
lib/scsi-lowlevel.c lib/socket.c lib/sync.c lib/task_mgmt.c
SONAME=$(firstword $(subst ., ,$(VERSION)))
SOREL=$(shell printf "%d%02d%02d" $(subst ., ,$(VERSION)))
lib_libiscsi_la_LDFLAGS = \
-version-info $(SONAME):$(SOREL):0 -bindir $(bindir) -no-undefined \
-export-symbols $(srcdir)/lib/libiscsi.syms
# libiscsi utilities
if PROGRAMS
bin_PROGRAMS += bin/iscsi-inq bin/iscsi-ls bin/iscsi-readcapacity16
bin_iscsi_inq_SOURCES = src/iscsi-inq.c
bin_iscsi_ls_SOURCES = src/iscsi-ls.c
bin_iscsi_readcapacity16_SOURCES = src/iscsi-readcapacity16.c
# Other examples
noinst_PROGRAMS += bin/iscsiclient
bin_iscsiclient_SOURCES = examples/iscsiclient.c
EXTRA_PROGRAMS += bin/iscsi-dd
bin_iscsi_dd_SOURCES = examples/iscsi-dd.c
# libiscsi test tool
noinst_PROGRAMS += bin/iscsi-test
dist_noinst_HEADERS += test-tool/iscsi-test.h
bin_iscsi_test_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/test-tool
bin_iscsi_test_LDFLAGS = -ldl
bin_iscsi_test_SOURCES = test-tool/iscsi-test.c \
test-tool/0000_testunitready_simple.c \
test-tool/0100_read10_simple.c test-tool/0101_read10_beyond_eol.c \
test-tool/0102_read10_0blocks.c test-tool/0103_read10_rdprotect.c \
test-tool/0104_read10_flags.c test-tool/0105_read10_invalid.c \
test-tool/0110_readcapacity10_simple.c \
test-tool/0120_read6_simple.c \
test-tool/0121_read6_beyond_eol.c test-tool/0122_read6_invalid.c \
test-tool/0130_verify10_simple.c test-tool/0131_verify10_mismatch.c \
test-tool/0132_verify10_mismatch_no_cmp.c test-tool/0133_verify10_beyondeol.c \
test-tool/0160_readcapacity16_simple.c \
test-tool/0161_readcapacity16_alloclen.c \
test-tool/0170_unmap_simple.c test-tool/0171_unmap_zero.c \
test-tool/0180_writesame10_unmap.c test-tool/0181_writesame10_unmap_unaligned.c \
test-tool/0182_writesame10_beyondeol.c \
test-tool/0183_writesame10_wrprotect.c \
test-tool/0184_writesame10_0blocks.c \
test-tool/0190_writesame16_unmap.c test-tool/0191_writesame16_unmap_unaligned.c \
test-tool/0192_writesame16_beyondeol.c \
test-tool/0193_writesame16_wrprotect.c \
test-tool/0194_writesame16_0blocks.c \
test-tool/0200_read16_simple.c test-tool/0201_read16_rdprotect.c \
test-tool/0202_read16_flags.c test-tool/0203_read16_0blocks.c \
test-tool/0204_read16_beyondeol.c \
test-tool/0210_read12_simple.c test-tool/0211_read12_rdprotect.c \
test-tool/0212_read12_flags.c test-tool/0213_read12_0blocks.c \
test-tool/0214_read12_beyondeol.c \
test-tool/0220_write16_simple.c test-tool/0221_write16_wrprotect.c \
test-tool/0222_write16_flags.c test-tool/0223_write16_0blocks.c \
test-tool/0224_write16_beyondeol.c \
test-tool/0230_write12_simple.c test-tool/0231_write12_wrprotect.c \
test-tool/0232_write12_flags.c test-tool/0233_write12_0blocks.c \
test-tool/0234_write12_beyondeol.c \
test-tool/0240_prefetch10_simple.c \
test-tool/0241_prefetch10_flags.c \
test-tool/0242_prefetch10_beyondeol.c \
test-tool/0243_prefetch10_0blocks.c \
test-tool/0250_prefetch16_simple.c \
test-tool/0251_prefetch16_flags.c \
test-tool/0252_prefetch16_beyondeol.c \
test-tool/0253_prefetch16_0blocks.c \
test-tool/0260_get_lba_status_simple.c test-tool/0264_get_lba_status_beyondeol.c \
test-tool/0270_verify16_simple.c test-tool/0271_verify16_mismatch.c \
test-tool/0272_verify16_mismatch_no_cmp.c test-tool/0273_verify16_beyondeol.c \
test-tool/0280_verify12_simple.c test-tool/0281_verify12_mismatch.c \
test-tool/0282_verify12_mismatch_no_cmp.c test-tool/0283_verify12_beyondeol.c \
test-tool/0290_write10_simple.c test-tool/0291_write10_wrprotect.c \
test-tool/0292_write10_flags.c test-tool/0293_write10_0blocks.c \
test-tool/0294_write10_beyondeol.c \
test-tool/0300_readonly.c \
test-tool/0310_writeverify10_simple.c test-tool/0311_writeverify10_wrprotect.c \
test-tool/0314_writeverify10_beyondeol.c \
test-tool/0320_writeverify12_simple.c test-tool/0321_writeverify12_wrprotect.c \
test-tool/0324_writeverify12_beyondeol.c \
test-tool/0330_writeverify16_simple.c test-tool/0331_writeverify16_wrprotect.c \
test-tool/0334_writeverify16_beyondeol.c \
test-tool/0340_compareandwrite_simple.c test-tool/0341_compareandwrite_mismatch.c \
test-tool/0343_compareandwrite_beyondeol.c \
test-tool/0350_orwrite_simple.c \
test-tool/0351_orwrite_wrprotect.c \
test-tool/0354_orwrite_beyondeol.c \
test-tool/0360_startstopunit_simple.c \
test-tool/0361_startstopunit_pwrcnd.c \
test-tool/0362_startstopunit_noloej.c \
test-tool/0370_nomedia.c \
test-tool/0380_preventallow_simple.c \
test-tool/0381_preventallow_eject.c \
test-tool/0382_preventallow_itnexus_loss.c \
test-tool/0383_preventallow_target_warm_reset.c \
test-tool/0384_preventallow_target_cold_reset.c \
test-tool/0385_preventallow_lun_reset.c \
test-tool/0386_preventallow_2_it_nexuses.c \
test-tool/0390_mandatory_opcodes_sbc.c \
test-tool/0400_inquiry_basic.c \
test-tool/0401_inquiry_alloclen.c \
test-tool/0402_inquiry_evpd.c \
test-tool/0403_inquiry_supported_vpd.c \
test-tool/0404_inquiry_all_reported_vpd.c \
test-tool/0410_readtoc_basic.c \
test-tool/0420_reserve6_simple.c \
test-tool/0421_reserve6_lun_reset.c \
test-tool/0422_reserve6_logout.c \
test-tool/0423_reserve6_sessionloss.c \
test-tool/0424_reserve6_target_reset.c \
test-tool/0430_report_all_supported_ops.c \
\
test-tool/1000_cmdsn_invalid.c \
test-tool/1010_datasn_invalid.c \
test-tool/1020_bufferoffset_invalid.c \
test-tool/1030_unsolicited_data_overflow.c \
test-tool/1031_unsolicited_data_out.c
endif
# LD_PRELOAD library.
if LD_ISCSI
EXTRA_PROGRAMS += bin/ld_iscsi
CLEANFILES = bin/ld_iscsi.o bin/ld_iscsi.so
# This gets a bit messy:
#
# 1) let automake compile the sources
bin_ld_iscsi_SOURCES = src/ld_iscsi.c
bin_ld_iscsi_CFLAGS = $(AM_CFLAGS) -fPIC
# 2) let libtool link in the static version of the library
noinst_LTLIBRARIES = lib/libiscsi_convenience.la
lib_libiscsi_convenience_la_SOURCES = $(lib_libiscsi_la_SOURCES)
bin/ld_iscsi.o: src/bin_ld_iscsi-ld_iscsi.o lib/libiscsi_convenience.la
$(LIBTOOL) --mode=link $(CC) -o $@ $^
# 3) Manually create the .so file.
bin_SCRIPTS = bin/ld_iscsi.so
bin/ld_iscsi.so: bin/ld_iscsi.o
$(CC) -shared -o bin/ld_iscsi.so bin/ld_iscsi.o -ldl
endif