diff mbox series

[v2,03/10] KVM: selftests: print a message when skipping KVM tests

Message ID 20210519200339.829146-4-axelrasmussen@google.com (mailing list archive)
State New, archived
Headers show
Series KVM: selftests: exercise userfaultfd minor faults | expand

Commit Message

Axel Rasmussen May 19, 2021, 8:03 p.m. UTC
Previously, if this check failed, we'd just exit quietly with no output.
This can be confusing, so print out a short message indicating why the
test is being skipped.

Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
---
 tools/testing/selftests/kvm/lib/kvm_util.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Ben Gardon May 19, 2021, 9:49 p.m. UTC | #1
On Wed, May 19, 2021 at 1:03 PM Axel Rasmussen <axelrasmussen@google.com> wrote:
>
> Previously, if this check failed, we'd just exit quietly with no output.
> This can be confusing, so print out a short message indicating why the
> test is being skipped.
>
> Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>

Reviewed-by: Ben Gardon <bgardon@google.com>

> ---
>  tools/testing/selftests/kvm/lib/kvm_util.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c
> index f05ca919cccb..0d6ddee429b9 100644
> --- a/tools/testing/selftests/kvm/lib/kvm_util.c
> +++ b/tools/testing/selftests/kvm/lib/kvm_util.c
> @@ -53,8 +53,10 @@ int kvm_check_cap(long cap)
>         int kvm_fd;
>
>         kvm_fd = open(KVM_DEV_PATH, O_RDONLY);
> -       if (kvm_fd < 0)
> +       if (kvm_fd < 0) {
> +               print_skip("KVM not available, errno: %d", errno);
>                 exit(KSFT_SKIP);
> +       }

This is a wonderful change. I believe this will only be hit if KVM is
built as a module and that module has not yet been loaded, so this
message could also suggest that the user check if the KVM / KVM
arch/vendor specific module has been loaded.

>
>         ret = ioctl(kvm_fd, KVM_CHECK_EXTENSION, cap);
>         TEST_ASSERT(ret != -1, "KVM_CHECK_EXTENSION IOCTL failed,\n"
> --
> 2.31.1.751.gd2f1c929bd-goog
>
Paolo Bonzini May 24, 2021, 1:23 p.m. UTC | #2
On 19/05/21 23:49, Ben Gardon wrote:
> On Wed, May 19, 2021 at 1:03 PM Axel Rasmussen <axelrasmussen@google.com> wrote:
>>
>> Previously, if this check failed, we'd just exit quietly with no output.
>> This can be confusing, so print out a short message indicating why the
>> test is being skipped.
>>
>> Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
> 
> Reviewed-by: Ben Gardon <bgardon@google.com>
> 
>> ---
>>   tools/testing/selftests/kvm/lib/kvm_util.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c
>> index f05ca919cccb..0d6ddee429b9 100644
>> --- a/tools/testing/selftests/kvm/lib/kvm_util.c
>> +++ b/tools/testing/selftests/kvm/lib/kvm_util.c
>> @@ -53,8 +53,10 @@ int kvm_check_cap(long cap)
>>          int kvm_fd;
>>
>>          kvm_fd = open(KVM_DEV_PATH, O_RDONLY);
>> -       if (kvm_fd < 0)
>> +       if (kvm_fd < 0) {
>> +               print_skip("KVM not available, errno: %d", errno);
>>                  exit(KSFT_SKIP);
>> +       }
> 
> This is a wonderful change. I believe this will only be hit if KVM is
> built as a module and that module has not yet been loaded, so this
> message could also suggest that the user check if the KVM / KVM
> arch/vendor specific module has been loaded.

Let's make it

                 print_skip("%s not available, is KVM loaded? (errno: %d)",
                            KVM_DEV_PATH, errno);

Paolo
diff mbox series

Patch

diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c
index f05ca919cccb..0d6ddee429b9 100644
--- a/tools/testing/selftests/kvm/lib/kvm_util.c
+++ b/tools/testing/selftests/kvm/lib/kvm_util.c
@@ -53,8 +53,10 @@  int kvm_check_cap(long cap)
 	int kvm_fd;
 
 	kvm_fd = open(KVM_DEV_PATH, O_RDONLY);
-	if (kvm_fd < 0)
+	if (kvm_fd < 0) {
+		print_skip("KVM not available, errno: %d", errno);
 		exit(KSFT_SKIP);
+	}
 
 	ret = ioctl(kvm_fd, KVM_CHECK_EXTENSION, cap);
 	TEST_ASSERT(ret != -1, "KVM_CHECK_EXTENSION IOCTL failed,\n"