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

From: Shuah Khan
Date: Fri Jul 19 2024 - 12:40:57 EST


On 7/12/24 01:30, Muhammad Usama Anjum wrote:
Use kselftest wrapper to mark tests pass/fail instead of manually
counting.

You care combining two changes in the patch.

This is needed to return correct exit status. This also
improves readability and mainability.

Spelling - "mainability" - checkpatch would have helped you
catch this.

The change to return the correct error fine and but not the
change thaT ADDS DUPLICATE tap header.




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();

The problem with adding this header here is when
make kselftest TARGETS=vDSO is run there will be
duplicate TAP 13 headers.


+
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");
}

thanks,
-- Shuah