CCI-MOC / lsvd-rbd

Log Structured Virtual Disk
GNU General Public License v2.0
8 stars 5 forks source link

Investigate SPDK Testing #30

Closed knikolla closed 4 months ago

knikolla commented 4 months ago

Currently, SPDK supports different backends for block devices. There is an autotest.sh file that handles the configuration of the the environment and executes the testing suite, including block device backends.

We want to take advantage of SPDK's upstream testing capabilities for LSVD.

Steps

knikolla commented 4 months ago

Upstream CI is driven by the autorun.sh file and autotest.sh commands respectively.

These require an autorun-spdk.conf file. Such a sample file ready to be edited can be found in scripts/vagrant/autorun-spdk.conf

Running the unit-tests as is, is troublesome because autotest.sh (which is executed by autorun.sh) has a dependency on the nvme command existing in the system and on the presence of nvme devices. Though changing the order does seem to allow most unit tests to run, they don't seem terribly useful.

The most useful part of the tests seem to be

They both call fio, in addition to testing various rpc.py commands handled by the block device driver. The repo's (app/fio) fio has support for specifying a SPDK block device.

It might be a good starting point to just implement fio and the various rpc.py commands exercised in the tests as part of our LSVD CI.

knikolla commented 4 months ago

Created issue #31