[PATCH V2 00/46] nvmftests: NVMe Over Fabrics Unit Test Framework

Michael Moese mmoese at suse.de
Wed Feb 21 05:00:02 PST 2018


Hi,
I was able to play a bit with your testsuite, and I am currently
working on integrating it into our automated tests.

In general I am not sure if having all these tests in python is quite
a good idea, as you pull in a huge list of dependencies. And most
developers just use a kernel and an initrd to run a bunch of tests.

However, I think there should be less output, but a nice summary on
passed/failed testcases. I would suggest taking a look at blktests.

One other remark I found so far:
In the two files tests/test_nvmf_create_host.py and 
tests/test_nvmf_create_pci_target.py you wait for "Press enter..".
using raw_input(), but this is a major annoyance when executing the 
testsuite automated and unattended, so I would suggest removing those.

Said that, I would like to contribute to your tests and help improve
them. You should have received a pull request regarding my remarks
above. 

Michael


On Tue, Oct 24, 2017 at 06:30:17PM -0700, Chaitanya Kulkarni wrote:
> From: Chaitanya Kulkarni <chaitanya.kulkarni at wdc.com>
> 
> Hi,
> 
> This contains second version of the NVMe Over Fabrics unit test framework (nvmftests).
> 
> Changes since V1:-
>     1. Addition of new testcases to improve the coverage.
>     2. Improved directory structure for code clarity.
>     3. Libification of the common code.
>     4. Support to use different block devices on the target side.
>     5. Centralize test configuration management.
>     6. Support to execute File System related operations on the host side.
>     7. Adjust the code to incorporate the comments received for the
>        first version.
>     8. Support for setting different log levels for each component.
>     9. Support for quick performance measurements.
>     10. Class hierarchy documentation and sequence diagram.
>     11. Improved workqueue management for host namesapce to
>         run parallel commands.
> 
> It will be great if I can get some feedback, I'll be happy to incorporate
> the comments and make it more usable.
> 
> Following is the code repository for current code:-
>     https://github.com/ChaitanayaKulkarni/nvmftests/releases
> 
> For the purpose of review, this patch series is generated against
> $KERN_SRC/tools/testing/selftests/.
> 
> Regards,
> -Chaitanya
> 
> Chaitanya Kulkarni (46):
>   nvmftests: add nvmftests README file
>   nvmftests-utils: add utility class to define constants
>   nvmftests-utils: add shell command package
>   nvmftests-utils: add log package
>   nvmftests-utils: add diskio package
>   nvmftests-utils: add fs package
>   nvmftests-utils: add misc package
>   nvmftests: add utils package
>   nvmftests-nvmf: add target config generator
>   nvmftests-nvmf: add support for target ns
>   nvmftests-nvmf: add support for target port
>   nvmftests-nvmf: add support for target subsystem
>   nvmftests-nvmf: add support for target
>   nvmftests-nvmf: add target package
>   nvmftests-nvmf: add support for host ns
>   nvmftests-nvmf: add support for host subsystem
>   nvmftests-nvmf: add support for host
>   nvmftests-nvmf: add host package
>   nvmftests-nvmf: add nvmf core package
>   nvmftests-tests: add user config file
>   nvmftests-tests: add support for test logger
>   nvmftests-tests: add a parent class for tests
>   nvmftests-tests: add a test for generic block device
>   nvmftests-tests: add a test for ns-descs
>   nvmftests-tests: add a test for create/delete host
>   nvmftests-tests: add a test for NVMe PCIe target ns
>   nvmftests-tests: add a test to create and delete target
>   nvmftests-tests: add a test for controller rescan
>   nvmftests-tests: add a test for controller reset
>   nvmftests-tests: add a test for get-ns-id
>   nvmftests-tests: add a test for identify controller
>   nvmftests-tests: add a test for identify namespace
>   nvmftests-tests: add a test for smart-log
>   nvmftests-tests: add a test to run IOs with dd
>   nvmftests-tests: add a test to run IOs parallely with dd
>   nvmftests-tests: add a test to run mkfs and fio
>   nvmftests-tests: add a test to enable/disable target ns
>   nvmftests-tests: add a test to run IOs with dd randomly
>   nvmftests-tests: add a test to scan host ctrls and ns
>   nvmftests-tests: add a test to scan target subsys/ns
>   nvmftests-tests: add a target template
>   nvmftests-tests: add a host template
>   nvmftests-tests: add a test to run traffic and disable ns
>   nvmftests-tests: add a test to measure perf with fio
>   nvmftests: add class documentation and sequence diagram
>   nvmftests: add Makefile
> 
>  tools/testing/selftests/nvmftests/Makefile         |  63 +++
>  tools/testing/selftests/nvmftests/README.md        | 177 +++++++
>  tools/testing/selftests/nvmftests/doc/Makefile     |   7 +
>  .../selftests/nvmftests/doc/sequence-diag/Makefile |   7 +
>  .../nvmftests/doc/sequence-diag/nvmftests.plantuml |  98 ++++
>  tools/testing/selftests/nvmftests/nvmf/__init__.py |  28 ++
>  .../selftests/nvmftests/nvmf/host/__init__.py      |  23 +
>  .../testing/selftests/nvmftests/nvmf/host/host.py  | 365 ++++++++++++++
>  .../selftests/nvmftests/nvmf/host/host_ns.py       | 262 ++++++++++
>  .../nvmftests/nvmf/host/host_subsystem.py          | 527 +++++++++++++++++++++
>  .../selftests/nvmftests/nvmf/target/__init__.py    |  25 +
>  .../selftests/nvmftests/nvmf/target/port.py        | 122 +++++
>  .../selftests/nvmftests/nvmf/target/target.py      | 210 ++++++++
>  .../nvmf/target/target_config_generator.py         | 222 +++++++++
>  .../selftests/nvmftests/nvmf/target/target_ns.py   | 117 +++++
>  .../nvmftests/nvmf/target/target_subsystem.py      | 140 ++++++
>  .../nvmftests/tests/config/nvmftests.json          |  83 ++++
>  .../testing/selftests/nvmftests/tests/nvmf_test.py | 204 ++++++++
>  .../selftests/nvmftests/tests/nvmf_test_logger.py  |  50 ++
>  .../nvmftests/tests/test_nvmf_create_gen_blk.py    |  71 +++
>  .../nvmftests/tests/test_nvmf_create_host.py       |  71 +++
>  .../nvmftests/tests/test_nvmf_create_pci_target.py |  70 +++
>  .../nvmftests/tests/test_nvmf_create_target.py     |  62 +++
>  .../nvmftests/tests/test_nvmf_ctrl_rescan.py       |  63 +++
>  .../nvmftests/tests/test_nvmf_ctrl_reset.py        |  63 +++
>  .../nvmftests/tests/test_nvmf_get_ns_id.py         |  63 +++
>  .../nvmftests/tests/test_nvmf_host_template.py     |  62 +++
>  .../selftests/nvmftests/tests/test_nvmf_id_ctrl.py |  63 +++
>  .../selftests/nvmftests/tests/test_nvmf_id_ns.py   |  63 +++
>  .../selftests/nvmftests/tests/test_nvmf_io.py      |  65 +++
>  .../selftests/nvmftests/tests/test_nvmf_mkfs.py    |  65 +++
>  .../nvmftests/tests/test_nvmf_ns_descs.py          |  63 +++
>  .../nvmftests/tests/test_nvmf_ns_enable_disable.py |  83 ++++
>  .../nvmftests/tests/test_nvmf_parallel_io.py       |  65 +++
>  .../selftests/nvmftests/tests/test_nvmf_perf.py    |  63 +++
>  .../nvmftests/tests/test_nvmf_random_io.py         |  65 +++
>  .../nvmftests/tests/test_nvmf_run_host_traffic.py  | 111 +++++
>  .../nvmftests/tests/test_nvmf_scan_host.py         |  76 +++
>  .../nvmftests/tests/test_nvmf_scan_target.py       |  76 +++
>  .../nvmftests/tests/test_nvmf_smart_log.py         |  63 +++
>  .../nvmftests/tests/test_nvmf_target_template.py   |  64 +++
>  .../testing/selftests/nvmftests/utils/__init__.py  |  32 ++
>  .../selftests/nvmftests/utils/const/__init__.py    |  21 +
>  .../selftests/nvmftests/utils/const/const.py       |  50 ++
>  .../selftests/nvmftests/utils/diskio/__init__.py   |  21 +
>  .../testing/selftests/nvmftests/utils/diskio/dd.py |  50 ++
>  .../selftests/nvmftests/utils/diskio/fio.py        |  74 +++
>  .../selftests/nvmftests/utils/fs/__init__.py       |  21 +
>  .../testing/selftests/nvmftests/utils/fs/ext4fs.py | 108 +++++
>  .../selftests/nvmftests/utils/fs/filesystem.py     | 122 +++++
>  .../selftests/nvmftests/utils/log/__init__.py      |  20 +
>  tools/testing/selftests/nvmftests/utils/log/log.py |  58 +++
>  .../selftests/nvmftests/utils/misc/__init__.py     |  23 +
>  .../nvmftests/utils/misc/generic_blk_dev.py        |  58 +++
>  .../selftests/nvmftests/utils/misc/loopback.py     | 103 ++++
>  .../selftests/nvmftests/utils/misc/nvme_pci.py     | 114 +++++
>  .../selftests/nvmftests/utils/shell/__init__.py    |  20 +
>  .../testing/selftests/nvmftests/utils/shell/cmd.py |  47 ++
>  58 files changed, 5182 insertions(+)
>  create mode 100644 tools/testing/selftests/nvmftests/Makefile
>  create mode 100644 tools/testing/selftests/nvmftests/README.md
>  create mode 100644 tools/testing/selftests/nvmftests/doc/Makefile
>  create mode 100644 tools/testing/selftests/nvmftests/doc/sequence-diag/Makefile
>  create mode 100644 tools/testing/selftests/nvmftests/doc/sequence-diag/nvmftests.plantuml
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/host/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/host/host.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/host/host_ns.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/host/host_subsystem.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/port.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/target.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/target_config_generator.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/target_ns.py
>  create mode 100644 tools/testing/selftests/nvmftests/nvmf/target/target_subsystem.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/config/nvmftests.json
>  create mode 100644 tools/testing/selftests/nvmftests/tests/nvmf_test.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/nvmf_test_logger.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_create_gen_blk.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_create_host.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_create_pci_target.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_create_target.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_ctrl_rescan.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_ctrl_reset.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_get_ns_id.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_host_template.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_id_ctrl.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_id_ns.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_io.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_mkfs.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_ns_descs.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_ns_enable_disable.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_parallel_io.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_perf.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_random_io.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_run_host_traffic.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_scan_host.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_scan_target.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_smart_log.py
>  create mode 100644 tools/testing/selftests/nvmftests/tests/test_nvmf_target_template.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/const/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/const/const.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/diskio/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/diskio/dd.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/diskio/fio.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/fs/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/fs/ext4fs.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/fs/filesystem.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/log/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/log/log.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/misc/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/misc/generic_blk_dev.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/misc/loopback.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/misc/nvme_pci.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/shell/__init__.py
>  create mode 100644 tools/testing/selftests/nvmftests/utils/shell/cmd.py
> 
> -- 
> 1.8.3.1
> 
> 
> _______________________________________________
> Linux-nvme mailing list
> Linux-nvme at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-nvme

-- 
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)



More information about the Linux-nvme mailing list