26 Commits

Author SHA1 Message Date
Ben Walker
08238af7ee util: Add a function to parse ip addresses.
This function parses in place by inserting null terminators.

Change-Id: I61cb97b87ec05d0183fbaa993fd3d7580a188bde
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2017-02-07 17:12:38 -07:00
Fan Lu
23dd35a729 test/nvme: add nvme_ns unit test
Change-Id: I4c32a3dfad21e759d63c23683b119a1eb5870545
Signed-off-by: Fan Lu <lux.fan@intel.com>
2017-01-30 09:57:38 -07:00
Fan Lu
fb85072562 test/nvmf:add virtual.c unit test
Change-Id: I48aab13b93f3b231c799a82e0044fa3eae8d5df1
Signed-off-by: Fan Lu <lux.fan@intel.com>
2017-01-27 10:54:28 -07:00
Daniel Verkamp
f3b3fe5b36 autotest: remove duplicated unit test invocations
Now that unittest.sh is run as part of the automated tests, drop the
various unit test calls scattered throughout the tree.

Change-Id: Iea98314bb7f04620d72d81d25e24f8e706b50ce1
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-25 15:19:23 -07:00
Daniel Verkamp
7c3214a0ac unittest.sh: move 'make' command into .travis.yml
The unittest.sh script now assumes that the build has already completed
before it is run.

Change-Id: I814b7bf462e8596986b80fe31a93c26c82db7d57
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-25 15:19:23 -07:00
Daniel Verkamp
18027e12e6 unittest.sh: allow running with valgrind
This doesn't actually enable valgrind on the Travis CI instance, but it
allows the possibility of adding it in the future.

Change-Id: Id3787899e7e0f5f7ebbce3919caea8242b6bf706
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-25 15:19:23 -07:00
Daniel Verkamp
df33e630aa test/nvme: run quirks unit test
Change-Id: Ie0d7709f6f5524b6ec80bfce40260d3e518c23d4
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-20 17:06:14 -07:00
Fan Lu
57fbfa0abe test/nvmf:add direct.c unit test
Change-Id: I5259aa2fc1dd22d662a14d44aa8015bc55c430e9
Signed-off-by: Fan Lu <lux.fan@intel.com>
2017-01-19 11:13:33 -07:00
Daniel Verkamp
f3c45ea0b3 test/nvme: move nvme_pcie unit tests to a new file
The PCIe-specific unit tests still need to be updated; this patch just
moves the existing tests over and stubs out the necessary external
functions.

Change-Id: Ia6d46013231d8880df111b744523d02b56b9b37a
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-09 11:36:27 -07:00
Tsuyoshi Uchida
a5f0327897 scsi: translate nvme error to scsi error (#54)
This patch translates NVMe status code to SCSI sense according to NVM
Express: SCSI Translation Reference.

http://nvmexpress.org/wp-content/uploads/NVM_Express_-_SCSI_Translation_Reference-1_5_20150624_Gold.pdf
2016-10-28 13:06:45 -07:00
Daniel Verkamp
12f56a432f travis: install DPDK and other dependencies
Change the unittest.sh script to assume that all dependencies are
available and just build the entirety of SPDK from the root directory.

Change-Id: I394fe0cdfe25373c030b2769dd19c1a9827510c3
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-10-07 15:34:18 -07:00
Ben Walker
6b1e4e732d Drop libpciaccess and switch to DPDK PCI
This patch also drops support for automatically unbinding
devices from the kernel - run scripts/setup.sh first.

Our generic pci interface is now hidden behind include/spdk/pci.h
and implemented in lib/util/pci.c. We no longer wrap the calls
in nvme_impl.h or ioat_impl.h. The implementation now only uses
DPDK and the libpciaccess dependency has been removed. If using
a version of DPDK earlier than 16.07, enumerating devices
by class code isn't available and only Intel SSDs will be
discovered. DPDK 16.07 adds enumeration by class code and all
NVMe devices will be correctly discovered.

Change-Id: I0e8bac36b5ca57df604a2b310c47342c67dc9f3c
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-10-04 15:59:00 -07:00
Daniel Verkamp
e445f16bac unittest.sh: build log library earlier
Now that the NVMe and I/OAT libraries depend on the log library, log
needs to be built earlier in the Travis-CI unit test script.

Change-Id: I189800934007fe8365cdfd5eb4cd797eed252b73
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-09-28 13:38:53 -07:00
Daniel Verkamp
634786e583 test/io_channel: add to autotest and unittest.sh
Also remove libspdk_util.a from the io_channel_ut linker command, since
it already includes the tested C file directly and doesn't depend on any
other util library functions.

Change-Id: I4b3fc4d57b5af4524b53664365f6ba52686e4b80
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-09-27 16:32:36 -07:00
Daniel Verkamp
6c5f05f177 util: add bit array data structure
Change-Id: Idab4473fa23486e72334ec07d0853c6325197c20
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-09-15 15:47:56 -07:00
Daniel Verkamp
7d7f73d064 unittest.sh: temporarily disable scsi_bdev test
The scsi_bdev code now depends on lib/util, which needs additional
dependencies (libpciaccess or DPDK) to build beyond what is normally
installed on the Travis-CI system.  Drop that test from the Travis-CI
unittest.sh script until this is resolved.

Change-Id: Ic2c90b765d2812f485553db77b7a433a50861f7b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-08-29 09:53:26 -07:00
Daniel Verkamp
bd4ac74eaf scsi: import SCSI/blockdev translation layer
Change-Id: Ie96943f40ea8be4156d55bc5eeacc567743cf9d6
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-08-01 10:35:01 -07:00
Daniel Verkamp
1d81cbc955 test/nvmf: stub out per-file unit tests
Change-Id: I9606b82dbfaa6c84d8dafc07fb76a113e3436083
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-07-22 12:50:44 -07:00
Daniel Verkamp
5a84b8e6ee unittest.sh: generate config.h
Change-Id: I65b4f6503a6edc22a960304b994f0b5f20326385
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 16:06:08 -07:00
Daniel Verkamp
545effaa49 unittest.sh: build jsonrpc dependencies
The JSON-RPC tests use the JSON and log libraries, so build those before
the JSON-RPC test directory.

This is just a workaround; ideally, we should build DPDK so the whole
SPDK repository can be built, but that is a larger change.

Change-Id: Ida0e98ad95fb90a22bd261cf688deafd1fd51975
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-24 10:10:39 -07:00
Daniel Verkamp
376d117c90 jsonrpc: add JSON-RPC 2.0 library
Change-Id: I4f58792c3af1f85f55144717478f868ebe5b1700
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-23 10:28:58 -07:00
Daniel Verkamp
aaa533adc7 log: add SPDK logging library
Change-Id: I3d4060b619a3976ffff75c05f86214e3fcd18fb5
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-09 15:54:49 -07:00
Daniel Verkamp
f9193f4ce7 json: add JSON parser and encoder libraries
Change-Id: Id73fb7e300d66d31a7c3986c0334b6f56e284905
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-09 13:30:02 -07:00
Daniel Verkamp
55d9ff6a66 config: make -Werror optional and off by default
Allow end users to build the code even if, for example, warnings are
added with new compilers versions.

-Werror is still enforced for automated builds.

Change-Id: I567009d55cf5b941c452bd41d09f75d03b037209
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-03-18 10:42:28 -07:00
Daniel Verkamp
d4ab30ba33 ioat: add user-mode Intel I/OAT driver
The ioat driver supports DMA engine copy offload hardware available on
Intel Xeon platforms.

Change-Id: Ida0b17b25816576948ddb1b0443587e0f09574d4
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2015-12-09 10:14:15 -07:00
Daniel Verkamp
555a3d85c6 build: add Travis CI integration
Use the container-based travis-ci.org infrastructure to run only the unit
tests.

Change-Id: I4f7d011edb07341a668fa6fea495f6eb2a9c029b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2015-11-04 11:05:59 -07:00