The kernel commit d68006348288 ("nvme: rework NVME_AUTH Kconfig selection") in v6.7-rc1 introduced a new kernel config option NVME_HOST_AUTH. When the option is disabled, nvme test cases from 041 to 045 fail because nvme-fabrics module does not support the feature dhchap_ctrl_secret. To check the requirement, add _require_kernel_nvme_fabrics_feature() which refers /dev/nvme-fabrics and checks if the specified feature string is found or not. Call it to check dhchap_ctrl_secret support in require() of the test cases. This change relies on the kernel commit 1697d7d4c5ef ("nvme: blank out authentication fabrics options if not configured"). Suggested-by: Daniel Wagner <dwagner@xxxxxxx> Suggested-by: Hannes Reinecke <hare@xxxxxxx> Reviewed-by: Daniel Wagner <dwagner@xxxxxxx> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> --- tests/nvme/041 | 1 + tests/nvme/042 | 1 + tests/nvme/043 | 1 + tests/nvme/044 | 1 + tests/nvme/045 | 1 + tests/nvme/rc | 16 ++++++++++++++++ 6 files changed, 21 insertions(+) diff --git a/tests/nvme/041 b/tests/nvme/041 index d23f10a..c4588d7 100755 --- a/tests/nvme/041 +++ b/tests/nvme/041 @@ -14,6 +14,7 @@ requires() { _have_loop _have_kernel_option NVME_AUTH _have_kernel_option NVME_TARGET_AUTH + _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret _require_nvme_trtype_is_fabrics _require_nvme_cli_auth } diff --git a/tests/nvme/042 b/tests/nvme/042 index 9fda681..815d65e 100755 --- a/tests/nvme/042 +++ b/tests/nvme/042 @@ -14,6 +14,7 @@ requires() { _have_loop _have_kernel_option NVME_AUTH _have_kernel_option NVME_TARGET_AUTH + _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret _require_nvme_trtype_is_fabrics _require_nvme_cli_auth } diff --git a/tests/nvme/043 b/tests/nvme/043 index c6a0aa0..e65abb0 100755 --- a/tests/nvme/043 +++ b/tests/nvme/043 @@ -14,6 +14,7 @@ requires() { _have_loop _have_kernel_option NVME_AUTH _have_kernel_option NVME_TARGET_AUTH + _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret _require_nvme_trtype_is_fabrics _require_nvme_cli_auth _have_driver dh_generic diff --git a/tests/nvme/044 b/tests/nvme/044 index 7bd43f3..9ee0747 100755 --- a/tests/nvme/044 +++ b/tests/nvme/044 @@ -14,6 +14,7 @@ requires() { _have_loop _have_kernel_option NVME_AUTH _have_kernel_option NVME_TARGET_AUTH + _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret _require_nvme_trtype_is_fabrics _require_nvme_cli_auth _have_driver dh_generic diff --git a/tests/nvme/045 b/tests/nvme/045 index 1eb1032..be408b6 100755 --- a/tests/nvme/045 +++ b/tests/nvme/045 @@ -15,6 +15,7 @@ requires() { _have_loop _have_kernel_option NVME_AUTH _have_kernel_option NVME_TARGET_AUTH + _require_kernel_nvme_fabrics_feature dhchap_ctrl_secret _require_nvme_trtype_is_fabrics _require_nvme_cli_auth _have_driver dh_generic diff --git a/tests/nvme/rc b/tests/nvme/rc index 1cff522..3c4b2e1 100644 --- a/tests/nvme/rc +++ b/tests/nvme/rc @@ -155,6 +155,22 @@ _require_nvme_cli_auth() { return 0 } +_require_kernel_nvme_fabrics_feature() { + local feature="$1" + + _have_driver nvme-fabrics || return 1 + + if ! [[ -r /dev/nvme-fabrics ]]; then + SKIP_REASONS+=("/dev/nvme-fabrics not available") + return 1; + fi + if ! grep -qe "${feature}" /dev/nvme-fabrics; then + SKIP_REASONS+=("nvme-fabrics does not support ${feature}") + return 1; + fi + return 0 +} + _test_dev_nvme_ctrl() { echo "/dev/char/$(cat "${TEST_DEV_SYSFS}/device/dev")" } -- 2.41.0