[PATCH 1/2] selftests: kvm: remove print_skip()

From: Muhammad Usama Anjum
Date: Wed Jun 12 2024 - 06:45:24 EST


Replace print_skip() with ksft_exit_skip() to simplify the code and
directly use the skip API provided by kselftest.h.

Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
---
.../testing/selftests/kvm/aarch64/vgic_init.c | 4 ++--
.../testing/selftests/kvm/demand_paging_test.c | 3 +--
tools/testing/selftests/kvm/dirty_log_test.c | 8 +++-----
.../testing/selftests/kvm/include/test_util.h | 1 -
tools/testing/selftests/kvm/lib/assert.c | 6 ++----
tools/testing/selftests/kvm/lib/test_util.c | 11 -----------
tools/testing/selftests/kvm/s390x/memop.c | 18 ++++++------------
.../selftests/kvm/x86_64/hyperv_cpuid.c | 13 +++++--------
.../kvm/x86_64/hyperv_extended_hypercalls.c | 6 ++----
.../selftests/kvm/x86_64/ucna_injection_test.c | 6 ++----
10 files changed, 23 insertions(+), 53 deletions(-)

diff --git a/tools/testing/selftests/kvm/aarch64/vgic_init.c b/tools/testing/selftests/kvm/aarch64/vgic_init.c
index b3b5fb0ff0a9a..556c3230eb093 100644
--- a/tools/testing/selftests/kvm/aarch64/vgic_init.c
+++ b/tools/testing/selftests/kvm/aarch64/vgic_init.c
@@ -757,8 +757,8 @@ int main(int ac, char **av)
}

if (!cnt_impl) {
- print_skip("No GICv2 nor GICv3 support");
- exit(KSFT_SKIP);
+ ksft_exit_skip("No GICv2 nor GICv3 support\n");
}
+
return 0;
}
diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
index 0202b78f8680a..ae60b3a5fb9e5 100644
--- a/tools/testing/selftests/kvm/demand_paging_test.c
+++ b/tools/testing/selftests/kvm/demand_paging_test.c
@@ -353,8 +353,7 @@ int main(int argc, char *argv[])

int main(void)
{
- print_skip("__NR_userfaultfd must be present for userfaultfd test");
- return KSFT_SKIP;
+ ksft_exit_skip("__NR_userfaultfd must be present for userfaultfd test\n");
}

#endif /* __NR_userfaultfd */
diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
index aacf80f574391..e5d3b01ec9508 100644
--- a/tools/testing/selftests/kvm/dirty_log_test.c
+++ b/tools/testing/selftests/kvm/dirty_log_test.c
@@ -692,11 +692,9 @@ static void run_test(enum vm_guest_mode mode, void *arg)
uint32_t ring_buf_idx = 0;
int sem_val;

- if (!log_mode_supported()) {
- print_skip("Log mode '%s' not supported",
- log_modes[host_log_mode].name);
- return;
- }
+ if (!log_mode_supported())
+ ksft_exit_skip("Log mode '%s' not supported\n",
+ log_modes[host_log_mode].name);

/*
* We reserve page table for 2 times of extra dirty mem which
diff --git a/tools/testing/selftests/kvm/include/test_util.h b/tools/testing/selftests/kvm/include/test_util.h
index 3e473058849ff..472fce41737e0 100644
--- a/tools/testing/selftests/kvm/include/test_util.h
+++ b/tools/testing/selftests/kvm/include/test_util.h
@@ -35,7 +35,6 @@ static inline int _no_printf(const char *format, ...) { return 0; }
#define pr_info(...) _no_printf(__VA_ARGS__)
#endif

-void __printf(1, 2) print_skip(const char *fmt, ...);
#define __TEST_REQUIRE(f, fmt, ...) \
do { \
if (!(f)) \
diff --git a/tools/testing/selftests/kvm/lib/assert.c b/tools/testing/selftests/kvm/lib/assert.c
index b49690658c606..33651f5b3a7fd 100644
--- a/tools/testing/selftests/kvm/lib/assert.c
+++ b/tools/testing/selftests/kvm/lib/assert.c
@@ -85,10 +85,8 @@ test_assert(bool exp, const char *exp_str,
}
va_end(ap);

- if (errno == EACCES) {
- print_skip("Access denied - Exiting");
- exit(KSFT_SKIP);
- }
+ if (errno == EACCES)
+ ksft_exit_skip("Access denied - Exiting\n");
exit(254);
}

diff --git a/tools/testing/selftests/kvm/lib/test_util.c b/tools/testing/selftests/kvm/lib/test_util.c
index 8ed0b74ae8373..6e8ac25403bb3 100644
--- a/tools/testing/selftests/kvm/lib/test_util.c
+++ b/tools/testing/selftests/kvm/lib/test_util.c
@@ -121,17 +121,6 @@ struct timespec timespec_div(struct timespec ts, int divisor)
return timespec_add_ns((struct timespec){0}, ns);
}

-void print_skip(const char *fmt, ...)
-{
- va_list ap;
-
- assert(fmt);
- va_start(ap, fmt);
- vprintf(fmt, ap);
- va_end(ap);
- puts(", skipping test");
-}
-
bool thp_configured(void)
{
int ret;
diff --git a/tools/testing/selftests/kvm/s390x/memop.c b/tools/testing/selftests/kvm/s390x/memop.c
index f2df7416be847..d7cd4b4eb6228 100644
--- a/tools/testing/selftests/kvm/s390x/memop.c
+++ b/tools/testing/selftests/kvm/s390x/memop.c
@@ -884,10 +884,8 @@ static void test_copy_key_fetch_prot_override(void)

guest_0_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, 0);
guest_last_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, last_page_addr);
- if (guest_0_page != 0 || guest_last_page != last_page_addr) {
- print_skip("did not allocate guest pages at required positions");
- goto out;
- }
+ if (guest_0_page != 0 || guest_last_page != last_page_addr)
+ ksft_exit_skip("did not allocate guest pages at required positions\n");

HOST_SYNC(t.vcpu, STAGE_INITED);
t.run->s.regs.crs[0] |= CR0_FETCH_PROTECTION_OVERRIDE;
@@ -923,10 +921,8 @@ static void test_errors_key_fetch_prot_override_not_enabled(void)

guest_0_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, 0);
guest_last_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, last_page_addr);
- if (guest_0_page != 0 || guest_last_page != last_page_addr) {
- print_skip("did not allocate guest pages at required positions");
- goto out;
- }
+ if (guest_0_page != 0 || guest_last_page != last_page_addr)
+ ksft_exit_skip("did not allocate guest pages at required positions\n");
HOST_SYNC(t.vcpu, STAGE_INITED);
HOST_SYNC(t.vcpu, STAGE_SKEYS_SET);

@@ -944,10 +940,8 @@ static void test_errors_key_fetch_prot_override_enabled(void)

guest_0_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, 0);
guest_last_page = vm_vaddr_alloc(t.kvm_vm, PAGE_SIZE, last_page_addr);
- if (guest_0_page != 0 || guest_last_page != last_page_addr) {
- print_skip("did not allocate guest pages at required positions");
- goto out;
- }
+ if (guest_0_page != 0 || guest_last_page != last_page_addr)
+ ksft_exit_skip("did not allocate guest pages at required positions");
HOST_SYNC(t.vcpu, STAGE_INITED);
t.run->s.regs.crs[0] |= CR0_FETCH_PROTECTION_OVERRIDE;
t.run->kvm_dirty_regs = KVM_SYNC_CRS;
diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
index 4f5881d4ef66d..695c45635d257 100644
--- a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
+++ b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
@@ -144,10 +144,9 @@ int main(int argc, char *argv[])
free((void *)hv_cpuid_entries);

if (!kvm_cpu_has(X86_FEATURE_VMX) ||
- !kvm_has_cap(KVM_CAP_HYPERV_ENLIGHTENED_VMCS)) {
- print_skip("Enlightened VMCS is unsupported");
- goto do_sys;
- }
+ !kvm_has_cap(KVM_CAP_HYPERV_ENLIGHTENED_VMCS))
+ ksft_exit_skip("Enlightened VMCS is unsupported\n");
+
vcpu_enable_evmcs(vcpu);
hv_cpuid_entries = vcpu_get_supported_hv_cpuid(vcpu);
test_hv_cpuid(hv_cpuid_entries, true);
@@ -155,10 +154,8 @@ int main(int argc, char *argv[])

do_sys:
/* Test system ioctl version */
- if (!kvm_has_cap(KVM_CAP_SYS_HYPERV_CPUID)) {
- print_skip("KVM_CAP_SYS_HYPERV_CPUID not supported");
- goto out;
- }
+ if (!kvm_has_cap(KVM_CAP_SYS_HYPERV_CPUID))
+ ksft_exit_skip("KVM_CAP_SYS_HYPERV_CPUID not supported\n");

test_hv_cpuid_e2big(vm, NULL);

diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_extended_hypercalls.c b/tools/testing/selftests/kvm/x86_64/hyperv_extended_hypercalls.c
index 949e08e98f315..d37212a27990b 100644
--- a/tools/testing/selftests/kvm/x86_64/hyperv_extended_hypercalls.c
+++ b/tools/testing/selftests/kvm/x86_64/hyperv_extended_hypercalls.c
@@ -47,10 +47,8 @@ int main(void)

/* Verify if extended hypercalls are supported */
if (!kvm_cpuid_has(kvm_get_supported_hv_cpuid(),
- HV_ENABLE_EXTENDED_HYPERCALLS)) {
- print_skip("Extended calls not supported by the kernel");
- exit(KSFT_SKIP);
- }
+ HV_ENABLE_EXTENDED_HYPERCALLS))
+ ksft_exit_skip("Extended calls not supported by the kernel\n");

vm = vm_create_with_one_vcpu(&vcpu, guest_code);
run = vcpu->run;
diff --git a/tools/testing/selftests/kvm/x86_64/ucna_injection_test.c b/tools/testing/selftests/kvm/x86_64/ucna_injection_test.c
index 57f157c06b393..1dcb37a1f0be9 100644
--- a/tools/testing/selftests/kvm/x86_64/ucna_injection_test.c
+++ b/tools/testing/selftests/kvm/x86_64/ucna_injection_test.c
@@ -273,10 +273,8 @@ int main(int argc, char *argv[])
kvm_ioctl(vm->kvm_fd, KVM_X86_GET_MCE_CAP_SUPPORTED,
&supported_mcg_caps);

- if (!(supported_mcg_caps & MCG_CMCI_P)) {
- print_skip("MCG_CMCI_P is not supported");
- exit(KSFT_SKIP);
- }
+ if (!(supported_mcg_caps & MCG_CMCI_P))
+ ksft_exit_skip("MCG_CMCI_P is not supported\n");

ucna_vcpu = create_vcpu_with_mce_cap(vm, 0, true, ucna_injection_guest_code);
cmcidis_vcpu = create_vcpu_with_mce_cap(vm, 1, false, cmci_disabled_guest_code);
--
2.39.2