[PATCH blktests 2/2] nvme/{041,042,043,044,045}: require kernel config NVME_HOST_AUTH
Shinichiro Kawasaki
shinichiro.kawasaki at wdc.com
Tue Nov 14 23:46:19 PST 2023
On Nov 15, 2023 / 06:59, Hannes Reinecke wrote:
[...]
> > diff --git a/tests/nvme/045 b/tests/nvme/045
> > index 1eb1032..126060c 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
> > + _kver_gt_or_eq 6 7 && _have_kernel_option NVME_HOST_AUTH
> > _require_nvme_trtype_is_fabrics
> > _require_nvme_cli_auth
> > _have_driver dh_generic
>
> Why do we need to check for the kernel version?
> Any kernel not having the NVME_HOST_AUTH config symbol clearly will
> have it unset, no?
> I'd rather update _have_kernel_option to handle the case where
> a config symbol is not present, treating it as unset.
At this point, _have_kernel_option() already handles NVME_HOST_AUTH as unset
when the kernel does not have the config symbol.
> That way we can drop the dependency on the kernel version (which, btw, is
> kinda pointless for the development branches anyway).
For the newer kernel, the test cases require NVME_HOST_AUTH is set. In other
words, the test cases are skipped when NVME_HOST_AUTH is unset. If we follow
your idea and drop the kernel version dependncy, the test cases will be skipped
on older kernels which do not have NVME_HOST_AUTH symbol. I wanted to allow
running the test cases on older kernels, then added the kernel version check.
I agree that kernel version dependency is not the best. As another solution,
I considered introducing a helper function _kernel_option_exists() which
checks if one of strings "# CONFIG_NVME_HOST_AUTH is not set" or
"# CONFIG_NVME_HOST_AUTH=[ym]" exists in kernel config files. With this, we
can do as follows:
_kernel_option_exists NVME_HOST_AUTH && _have_kernel_option NVME_HOST_AUTH
This assumes that one of the strings always exists in kernel configs. I was not
sure about the assumption, then chose the way to check kernel version. (Any
advice on this assumption will be appreciated...)
More information about the Linux-nvme
mailing list