[PATCH blktests v2 0/1] Introduce nvmet target setup/cleanup helpers

From: Daniel Wagner
Date: Fri Aug 18 2023 - 10:16:48 EST


I've decided to at two cleanup patches for the passthru tests. Initially I tried
to get rid of the arguments when calling the helpers.

Instead

_nvmet_passthru_target_setup "${def_subsysnqn}"

just

_nvmet_passthru_target_setup

but I run into the problem that ShellCheck seems to have a bug when default
arguments are used in the function:

fn() {
local -i a=${1:-42}
printf '%d\n' "$a"
}
fn

will trigger SC2119 and SC2120. This has been reported but not fixed yet:

https://github.com/koalaman/shellcheck/issues/2511

Thus I decided to leave it as it is, unless someone has a clever idea
how to get this working.



original cover letter:

Introduce helpers to setup nvmet targets. This is spin off from the refactoring
patches and the allowed_host patches [1].

Sagi suggested to record all resources allocated by nvmet_target_setup and then
later clean them up in nvmet_target_cleanup. I opted to figure out in
nvmet_target_cleanup what was allocated via the newly introdcuded _get_nvmet_ports
helper. The reason being, Hannes told me offline that he would like to add ANA
tests which will add some more ports to the subsystem. I hope with this
the code is more future proof.

BTW, while looking at this I saw that the passthru code is using the awkward
return value port when calling nvmet_passthru_target_setup. It seems some
more refactoring is in order...

[1] https://lore.kernel.org/linux-nvme/5h333eqhtw252sjw6axjewlb5bbb5ze7awekczxe3kie2lnhw6@manyer42khct/


changes

v2:
- drop local subsys variable in passthru tests
- do not use port as handle in passthru tests
- free port after unregistering from subsys

v1:
- https://lore.kernel.org/linux-nvme/20230818095744.24619-1-dwagner@xxxxxxx/


Daniel Wagner (3):
nvme/{033,034,035,036}: use default subsysnqn variable directly
nvme/{033,034,035,036,37}: drop port handle between passthru target
setup and cleanup
nvme: introduce nvmet_target_{setup/cleanup} common code

tests/nvme/003 | 14 ++-----
tests/nvme/004 | 21 ++---------
tests/nvme/005 | 20 +---------
tests/nvme/006 | 19 +---------
tests/nvme/007 | 14 +------
tests/nvme/008 | 21 +----------
tests/nvme/009 | 16 +-------
tests/nvme/010 | 21 +----------
tests/nvme/011 | 16 +-------
tests/nvme/012 | 21 +----------
tests/nvme/013 | 16 +-------
tests/nvme/014 | 21 +----------
tests/nvme/015 | 16 +-------
tests/nvme/018 | 16 +-------
tests/nvme/019 | 21 +----------
tests/nvme/020 | 16 +-------
tests/nvme/021 | 16 +-------
tests/nvme/022 | 16 +-------
tests/nvme/023 | 21 +----------
tests/nvme/024 | 16 +-------
tests/nvme/025 | 16 +-------
tests/nvme/026 | 16 +-------
tests/nvme/027 | 17 ++-------
tests/nvme/028 | 17 ++-------
tests/nvme/029 | 21 +----------
tests/nvme/033 | 10 ++---
tests/nvme/034 | 10 ++---
tests/nvme/035 | 10 ++---
tests/nvme/036 | 12 +++---
tests/nvme/037 | 5 +--
tests/nvme/040 | 19 +---------
tests/nvme/041 | 18 +--------
tests/nvme/042 | 17 +--------
tests/nvme/043 | 17 +--------
tests/nvme/044 | 19 ++--------
tests/nvme/045 | 18 ++-------
tests/nvme/047 | 21 +----------
tests/nvme/048 | 17 +--------
tests/nvme/rc | 99 +++++++++++++++++++++++++++++++++++++++++++++++---
39 files changed, 184 insertions(+), 553 deletions(-)

--
2.41.0