nvme/063: fixup tls_key encryption check

The _nvme_ctrl_tls_key function returns 0 if `tls_key` exists in sysfs for
the respective nvme controller. This will be evaluated as true. However,
the test should error only if the key is not exposed by sysfs. Which
would mean the connection is not encrypted, as per the existing warning
message in the test. Currently, we are checking that it exists and
erroring out incorrectly. This patch fixes the above.

Link: https://github.com/osandov/blktests/issues/168
Fixes: 9aa2023312bf ("nvme: add testcase for secure concatenation")
Signed-off-by: Wilfred Mallawa <[email protected]>
Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
1 file changed
tree: c6e50d73fba639c754b65335767a84d08a5dd61c
  1. .github/
  2. common/
  3. contrib/
  4. Documentation/
  5. LICENSES/
  6. src/
  7. tests/
  8. .dir-locals.el
  9. .gitignore
  10. check
  11. CONTRIBUTING.md
  12. Makefile
  13. new
  14. README.md
README.md

blktests

Build Status

blktests is a test framework for the Linux kernel block layer and storage stack. It is inspired by the xfstests filesystem testing framework. It was originally written by Omar Sandoval and announced in 2017.

Getting Started

The dependencies are minimal, but make sure you have them installed:

  • bash (>= 4.2)
  • GNU coreutils
  • GNU awk
  • util-linux
  • fio
  • gcc
  • make
  • systemd-udev (udevadm)

Some tests require the following:

  • e2fsprogs, xfsprogs, f2fs-tools and btrfs-progs
  • nvme-cli
  • multipath-tools (Debian, openSUSE, Arch Linux) or device-mapper-multipath (Fedora)
  • nbd-client and nbd-server (Debian) or nbd (Fedora, openSUSE, Arch Linux)
  • dmsetup (Debian) or device-mapper (Fedora, openSUSE, Arch Linux)
  • rublk (cargo install --version=^0.1 rublk) for ublk test
  • python3, ethtool, iproute2 for nvme-tcp zero-copy offload test

Build blktests with make. Optionally, install it to a known location with make install (/usr/local/blktests by default, but this can be changed by passing DESTDIR and/or prefix).

Add the list of block devices you want to test on in a file named config (note: these tests are potentially destructive):

TEST_DEVS=(/dev/nvme0n1 /dev/sdb)

And as root, run the default set of tests with ./check.

Do not add anything to the TEST_DEVS array containing data that you want to keep.

See here for more detailed information on configuration and running tests.

Adding Tests

New test cases are welcomed when,

  • a bug in block layer or storage stack is found and the new test case confirms fix of the bug,
  • a new feature is introduced in block layer or storage stack, and the new test cases confirm that the feature is working well, or,
  • the new test cases extend coverage of block layer and storage stack code.

The ./new script creates a new test from a template. The generated template contains more detailed documentation. The ./new script itself can be referred to as a document. It describes variables and functions that test cases should implement, global variables that test cases can refer and coding guidelines.

Patches to [email protected] and pull requests on GitHub are both accepted. See here for more information on contributing.