]> www.infradead.org Git - users/hch/blktests.git/commitdiff
nvme: consolidate nvme requirements based on transport type
authorSagi Grimberg <sagi@grimberg.me>
Thu, 3 Sep 2020 23:53:31 +0000 (16:53 -0700)
committerOmar Sandoval <osandov@fb.com>
Fri, 25 Sep 2020 17:19:55 +0000 (10:19 -0700)
Right now, only pci and loop have tests, hence these are
the only ones that are allowed. The user can pass an env
variable nvme_trtype and check for the necessary modules.

This allows prepares us to support other transport types.

Note that test 031 is designed to run only with nvme, hence
it overrides the environment variable to nvme_trtype=pci.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
32 files changed:
tests/nvme/002
tests/nvme/003
tests/nvme/004
tests/nvme/005
tests/nvme/006
tests/nvme/007
tests/nvme/008
tests/nvme/009
tests/nvme/010
tests/nvme/011
tests/nvme/012
tests/nvme/013
tests/nvme/014
tests/nvme/015
tests/nvme/016
tests/nvme/017
tests/nvme/018
tests/nvme/019
tests/nvme/020
tests/nvme/021
tests/nvme/022
tests/nvme/023
tests/nvme/024
tests/nvme/025
tests/nvme/026
tests/nvme/027
tests/nvme/028
tests/nvme/029
tests/nvme/030
tests/nvme/031
tests/nvme/032
tests/nvme/rc

index 07b7fdae2d395599792a3fc18849202c25800b9b..aaa5ec4d729a1e696dc0fc1dbbe0017024675509 100755 (executable)
@@ -10,7 +10,8 @@
 DESCRIPTION="create many subsystems and test discovery"
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index ed0feca3cac70ef3c2d88adf7bf832601fa14544..fd696d9efe2cdacf2250c42a8fe114c3a1370f91 100755 (executable)
@@ -11,7 +11,8 @@ DESCRIPTION="test if we're sending keep-alives to a discovery controller"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 0debcd9c7049df0e5df32351c8b38673b0595ef4..b841a8d4cd87ff1a0bb7caeb8f8c2ec61b1e99d1 100755 (executable)
@@ -12,7 +12,8 @@ DESCRIPTION="test nvme and nvmet UUID NS descriptors"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 325f2b6566130ecdb3a5386f974fde98ca52c3e6..df0900b372bef0654e2373609ec5abffbc04210e 100755 (executable)
@@ -11,9 +11,9 @@ DESCRIPTION="reset local loopback target"
 QUICK=1
 
 requires() {
-       _have_modules loop nvme-core nvme-loop nvmet && \
-               _have_module_param_value nvme_core multipath Y && \
-               _have_configfs && _have_program nvme
+       _nvme_requires
+       _have_modules loop && \
+               _have_module_param_value nvme_core multipath Y
 }
 
 test() {
index 6c8e1856026426fd3d52adb6968e1eb2adecff08..3f47613d52d2d4625a4445bb71a6acc105951623 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="create an NVMeOF target with a block device-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 58f4bf8808a13a30d0a4b2a4b11ae86191baf4d3..0902745a4ab2e61285d5848be44a44ffe51cd852 100755 (executable)
@@ -10,7 +10,7 @@ DESCRIPTION="create an NVMeOF target with a file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
 }
 
 test() {
index 71ff4d962b0088472e09390bb9467534fb62b488..f19de17fefac39f5a6fac96c69fbee246d04d68f 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="create an NVMeOF host with a block device-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 25c7da2ab854b32de9f972f62dc69ba97bdfda74..4afbe62864f6d6d4756fc6471c23697e4b295054 100755 (executable)
@@ -10,7 +10,7 @@ DESCRIPTION="create an NVMeOF host with a file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
 }
 
 test() {
index 2ed0f4871a30891fddc0ab01a8857ae1e5eb677f..53b97484615f88f23901415c0ec95c760ad2fd67 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="run data verification fio job on NVMeOF block device-backed ns"
 TIMED=1
 
 requires() {
-       _have_program nvme && _have_fio && \
-               _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_fio _have_modules loop
 }
 
 test() {
index 974b33745b99c39ac1e1d928dce5850988304969..a54583d5c582d1012626dc9f2b5d8f6293837276 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="run data verification fio job on NVMeOF file-backed ns"
 TIMED=1
 
 requires() {
-       _have_program nvme && _have_fio && _have_configfs && \
-               _have_modules nvme-loop nvmet
+       _nvme_requires
+       _have_fio
 }
 
 test() {
index 27981e903c587f1493bc9bd27cafc980809cf196..0049c3d8ceb64213189a77fe1590b48168857438 100755 (executable)
@@ -10,8 +10,9 @@ DESCRIPTION="run mkfs and data verification fio job on NVMeOF block device-backe
 TIMED=1
 
 requires() {
-       _have_program nvme && _have_program mkfs.xfs && _have_program fio && \
-               _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_program mkfs.xfs && _have_program fio && \
+               _have_modules loop
 }
 
 test() {
index af5f3730a2fc1800bffdfbbcc32a9c29148ffbe3..622706ec40880297cd79074bc692df9eebfaa262 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="run mkfs and data verification fio job on NVMeOF file-backed ns"
 TIMED=1
 
 requires() {
-       _have_program nvme && _have_program mkfs.xfs && _have_fio && \
-               _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_program mkfs.xfs && _have_fio
 }
 
 test() {
index c255d5f12205a74a51691770a60208bdf72c66e6..9517230253ab1bb2997f7f16b13cb78f18ea3d05 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="flush a NVMeOF block device-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index a8497a2ba400c690bb165a71fbd1f9ba6ed0481e..40b850974b4356118d7746c21c4fbd16de9c3875 100755 (executable)
@@ -10,7 +10,8 @@ DESCRIPTION="unit test for NVMe flush for file backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index f1e383cb441a6ae808f7e1ed13181630de903c6a..e1bad2f81461bec5d0b700d7cf1d2e2100f3df33 100755 (executable)
@@ -9,7 +9,7 @@
 DESCRIPTION="create/delete many NVMeOF block device-backed ns and test discovery"
 
 requires() {
-       _have_program nvme && _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
 }
 
 test() {
index 6787b5c754baf8b728b16df35f36f16bcdbfa38a..2e6d649f9b6557561aef02bc99446f05cc35612a 100755 (executable)
@@ -9,7 +9,7 @@
 DESCRIPTION="create/delete many file-ns and test discovery"
 
 requires() {
-       _have_program nvme && _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
 }
 
 test() {
index 67d89a6f0b24a19b1f87fc168fc2db3a2b0402d4..e39613709c90a703a945544f1b2b428167ed0e43 100755 (executable)
@@ -11,8 +11,8 @@ DESCRIPTION="unit test NVMe-oF out of range access on a file backend"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index a8b0204ec0eb02eef149663098cd167fecb556d7..86a2a2945b35fbc907588b5126f335deaa5c7f8c 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe DSM Discard command on NVMeOF block-device ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index b480ee1b92d09a7b6bb9727f1f63ab6b498e7281..ccadec6a5822d0f219d739d958684012936e32f6 100755 (executable)
@@ -10,7 +10,7 @@ DESCRIPTION="test NVMe DSM Discard command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules nvme-loop nvmet && _have_configfs
+       _nvme_requires
 }
 
 test() {
index bbee54d16ff19c0c75d3169d9b1570a323ded011..bbcb9d56a350d68f3f6127f1d2a9078af5264914 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe list command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 9ba07c1cc50f6c6d259fca90cc323ec70e58d235..452e7b3d196ce7f0be553e71b9232bc770134e1f 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe reset command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index ed2a5ad7653fed9f52f3ac3787bb1c1422891065..2714571d16d9e8fb87683c3f840e1594f3cd8d82 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe smart-log command on NVMeOF block-device ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 538580947c5cce091b1135a79656388d69dc724d..1f87bd19ec697221756e81d02be71b56ffb18cdb 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe smart-log command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 0039fefa50070c497817c454a1d9077fb4fa6f65..1b9e33351f61db3856b0bd05cc20e0ed4cd58493 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe effects-log command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 7e89d840529c2d4ad2f7fccaf1fde12283e45f42..21a265a630baeab69eaae5cddf9d3eb5db7e254e 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe ns-descs command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 4d293beb8b477cfdfb62809ffd5f050d4fb362c5..d7d33796e122668569b8b49179fd808096e484a7 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe ns-rescan command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 1280107ed5df038500564f8135c842683a7b5474..1643857437e89eb8ab3d27ed851b065b48d0e3c8 100755 (executable)
@@ -10,8 +10,8 @@ DESCRIPTION="test NVMe list-subsys command on NVMeOF file-backed ns"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 65eb400318883b6144dc393231130b473f9b519d..9f437285d085641c44ec0e49c42278d11f8c29bd 100755 (executable)
@@ -11,8 +11,8 @@ DESCRIPTION="test userspace IO via nvme-cli read/write interface"
 QUICK=1
 
 requires() {
-       _have_program nvme && _have_modules loop nvme-loop nvmet && \
-               _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test_user_io()
index 94020f47411eecd16415b7e44b9f54113fec6a58..7156cad7b6574ad521b42780ad79f77242cbaca0 100755 (executable)
@@ -10,9 +10,8 @@ DESCRIPTION="ensure the discovery generation counter is updated appropriately"
 QUICK=1
 
 requires() {
-       _have_program nvme &&
-       _have_modules loop nvme-loop nvmet &&
-       _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 
index 892f20bad9a7ab91425eb8a32c8dc58098e170ad..7e7ee7327e624c157c33c929e3f81656af946dca 100755 (executable)
@@ -18,9 +18,8 @@ DESCRIPTION="test deletion of NVMeOF controllers immediately after setup"
 QUICK=1
 
 requires() {
-       _have_program nvme &&
-       _have_modules loop nvme-loop nvmet &&
-       _have_configfs
+       _nvme_requires
+       _have_modules loop
 }
 
 test() {
index 0d0d53b325e666a5679b6bfcc2f00bf7b0678f19..017d4a339971342e3f66ad43ed10ac07801838ae 100755 (executable)
 
 . tests/nvme/rc
 
+#restrict test to nvme-pci only
+nvme_trtype=pci
+
 DESCRIPTION="test nvme pci adapter rescan/reset/remove during I/O"
 QUICK=1
 CAN_BE_ZONED=1
 
 requires() {
+       _nvme_requires
        _have_fio
 }
 
index 6ffa971b4308c7467f243d77ca552bd1785a0210..320aa4b2b475c69956537c0a9feb65dca72c0337 100644 (file)
@@ -6,6 +6,25 @@
 
 . common/rc
 
+nvme_trtype=${nvme_trtype:-"loop"}
+
+_nvme_requires() {
+       _have_program nvme
+       case ${nvme_trtype} in
+       loop)
+               _have_modules nvmet nvme-core nvme-loop
+               _have_configfs
+               ;;
+       pci)
+               _have_modules nvme nvme-core
+               ;;
+       *)
+               SKIP_REASON="unsupported nvme_trtype=${nvme_trtype}"
+               return 1
+       esac
+       return 0
+}
+
 group_requires() {
        _have_root
 }