[PATCH 1/2] selftests: x86: vdso_restorer: remove manual counting of pass/fail tests

From: Muhammad Usama Anjum
Date: Fri Jul 12 2024 - 03:31:16 EST


Use kselftest wrapper to mark tests pass/fail instead of manually
counting. This is needed to return correct exit status. This also
improves readability and mainability.

Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
---
tools/testing/selftests/x86/vdso_restorer.c | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/tools/testing/selftests/x86/vdso_restorer.c b/tools/testing/selftests/x86/vdso_restorer.c
index fe99f24341554..8e173d71291f6 100644
--- a/tools/testing/selftests/x86/vdso_restorer.c
+++ b/tools/testing/selftests/x86/vdso_restorer.c
@@ -21,6 +21,7 @@
#include <unistd.h>
#include <syscall.h>
#include <sys/syscall.h>
+#include "../kselftest.h"

/* Open-code this -- the headers are too messy to easily use them. */
struct real_sigaction {
@@ -44,9 +45,10 @@ static void handler_without_siginfo(int sig)

int main()
{
- int nerrs = 0;
struct real_sigaction sa;

+ ksft_print_header();
+
void *vdso = dlopen("linux-vdso.so.1",
RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
if (!vdso)
@@ -57,6 +59,8 @@ int main()
return 0;
}

+ ksft_set_plan(2);
+
memset(&sa, 0, sizeof(sa));
sa.handler = handler_with_siginfo;
sa.flags = SA_SIGINFO;
@@ -69,12 +73,7 @@ int main()

raise(SIGUSR1);

- if (handler_called) {
- printf("[OK]\tSA_SIGINFO handler returned successfully\n");
- } else {
- printf("[FAIL]\tSA_SIGINFO handler was not called\n");
- nerrs++;
- }
+ ksft_test_result(handler_called, "SA_SIGINFO handler returned\n");

printf("[RUN]\tRaise a signal, !SA_SIGINFO, sa.restorer == NULL\n");

@@ -86,10 +85,5 @@ int main()

raise(SIGUSR1);

- if (handler_called) {
- printf("[OK]\t!SA_SIGINFO handler returned successfully\n");
- } else {
- printf("[FAIL]\t!SA_SIGINFO handler was not called\n");
- nerrs++;
- }
+ ksft_test_result(handler_called, "SA_SIGINFO handler returned\n");
}
--
2.39.2