diff options
author | Vitaly Kuznetsov <vkuznets@redhat.com> | 2024-01-29 09:58:47 +0100 |
---|---|---|
committer | Sean Christopherson <seanjc@google.com> | 2024-01-30 12:32:03 -0800 |
commit | c2a449a30fa2b5ddc1dd058e92e047157c9eeb9e (patch) | |
tree | 72a4f436e23a1d0a735162e95686e4023e013fe1 /tools/testing/selftests | |
parent | 8ad4855273488c9bd5320b3fee80f66f0023f326 (diff) | |
download | linux-stable-c2a449a30fa2b5ddc1dd058e92e047157c9eeb9e.tar.gz linux-stable-c2a449a30fa2b5ddc1dd058e92e047157c9eeb9e.tar.bz2 linux-stable-c2a449a30fa2b5ddc1dd058e92e047157c9eeb9e.zip |
KVM: selftests: Fail tests when open() fails with !ENOENT
open_path_or_exit() is used for '/dev/kvm', '/dev/sev', and
'/sys/module/%s/parameters/%s' and skipping test when the entry is missing
is completely reasonable. Other errors, however, may indicate a real issue
which is easy to miss. E.g. when 'hyperv_features' test was entering an
infinite loop the output was:
./hyperv_features
Testing access to Hyper-V specific MSRs
1..0 # SKIP - /dev/kvm not available (errno: 24)
and this can easily get overlooked.
Keep ENOENT case 'special' for skipping tests and fail when open() results
in any other errno.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20240129085847.2674082-2-vkuznets@redhat.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/testing/selftests')
-rw-r--r-- | tools/testing/selftests/kvm/lib/kvm_util.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 8754abaff5e9..1b197426f29f 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -27,7 +27,8 @@ int open_path_or_exit(const char *path, int flags) int fd; fd = open(path, flags); - __TEST_REQUIRE(fd >= 0, "%s not available (errno: %d)", path, errno); + __TEST_REQUIRE(fd >= 0 || errno != ENOENT, "Cannot open %s: %s", path, strerror(errno)); + TEST_ASSERT(fd >= 0, "Failed to open '%s'", path); return fd; } |