Conform the layout, informational and status messages to TAP. No
functional change is intended other than the layout of output messages.

Signed-off-by: Muhammad Usama Anjum <[email protected]>
---
 .../selftests/vDSO/vdso_test_correctness.c    | 146 +++++++++---------
 1 file changed, 74 insertions(+), 72 deletions(-)

diff --git a/tools/testing/selftests/vDSO/vdso_test_correctness.c 
b/tools/testing/selftests/vDSO/vdso_test_correctness.c
index e691a3cf14911..688f83abb28eb 100644
--- a/tools/testing/selftests/vDSO/vdso_test_correctness.c
+++ b/tools/testing/selftests/vDSO/vdso_test_correctness.c
@@ -46,8 +46,6 @@ struct __kernel_timespec {
 /* max length of lines in /proc/self/maps - anything longer is skipped here */
 #define MAPS_LINE_LEN 128
 
-int nerrs = 0;
-
 typedef int (*vgettime_t)(clockid_t, struct timespec *);
 
 vgettime_t vdso_clock_gettime;
@@ -97,7 +95,7 @@ static void *vsyscall_getcpu(void)
        fclose(maps);
 
        if (!found) {
-               printf("Warning: failed to find vsyscall getcpu\n");
+               ksft_print_msg("Warning: failed to find vsyscall getcpu\n");
                return NULL;
        }
        return (void *) (0xffffffffff600800);
@@ -115,30 +113,29 @@ static void fill_function_pointers()
                vdso = dlopen("linux-gate.so.1",
                              RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
        if (!vdso) {
-               printf("[WARN]\tfailed to find vDSO\n");
-               return;
+               ksft_print_msg("failed to find vDSO\n");
+               ksft_finished();
        }
 
        vdso_getcpu = (getcpu_t)dlsym(vdso, name[4]);
        if (!vdso_getcpu)
-               printf("Warning: failed to find getcpu in vDSO\n");
+               ksft_print_msg("Warning: failed to find getcpu in vDSO\n");
 
        vgetcpu = (getcpu_t) vsyscall_getcpu();
 
        vdso_clock_gettime = (vgettime_t)dlsym(vdso, name[1]);
        if (!vdso_clock_gettime)
-               printf("Warning: failed to find clock_gettime in vDSO\n");
+               ksft_print_msg("Warning: failed to find clock_gettime in 
vDSO\n");
 
 #if defined(VDSO_32BIT)
        vdso_clock_gettime64 = (vgettime64_t)dlsym(vdso, name[5]);
        if (!vdso_clock_gettime64)
-               printf("Warning: failed to find clock_gettime64 in vDSO\n");
+               ksft_print_msg("Warning: failed to find clock_gettime64 in 
vDSO\n");
 #endif
 
        vdso_gettimeofday = (vgtod_t)dlsym(vdso, name[0]);
        if (!vdso_gettimeofday)
-               printf("Warning: failed to find gettimeofday in vDSO\n");
-
+               ksft_print_msg("Warning: failed to find gettimeofday in 
vDSO\n");
 }
 
 static long sys_getcpu(unsigned * cpu, unsigned * node,
@@ -164,7 +161,7 @@ static inline int sys_gettimeofday(struct timeval *tv, 
struct timezone *tz)
 
 static void test_getcpu(void)
 {
-       printf("[RUN]\tTesting getcpu...\n");
+       ksft_print_msg("Testing getcpu...\n");
 
        for (int cpu = 0; ; cpu++) {
                cpu_set_t cpuset;
@@ -199,18 +196,16 @@ static void test_getcpu(void)
                if (!ret_vsys && (cpu_vsys != cpu || node_vsys != node))
                        ok = false;
 
-               printf("[%s]\tCPU %u:", ok ? "OK" : "FAIL", cpu);
+               ksft_print_msg("CPU %u:", ok ? "OK" : "FAIL", cpu);
                if (!ret_sys)
-                       printf(" syscall: cpu %u, node %u", cpu_sys, node_sys);
+                       ksft_print_msg(" syscall: cpu %u, node %u", cpu_sys, 
node_sys);
                if (!ret_vdso)
-                       printf(" vdso: cpu %u, node %u", cpu_vdso, node_vdso);
+                       ksft_print_msg(" vdso: cpu %u, node %u", cpu_vdso, 
node_vdso);
                if (!ret_vsys)
-                       printf(" vsyscall: cpu %u, node %u", cpu_vsys,
-                              node_vsys);
-               printf("\n");
+                       ksft_print_msg(" vsyscall: cpu %u, node %u", cpu_vsys, 
node_vsys);
+               ksft_print_msg("\n");
 
-               if (!ok)
-                       nerrs++;
+               ksft_test_result(ok, "Succeeded\n");
        }
 }
 
@@ -259,19 +254,20 @@ static void test_one_clock_gettime(int clock, const char 
*name)
        struct timespec start, vdso, end;
        int vdso_ret, end_ret;
 
-       printf("[RUN]\tTesting clock_gettime for clock %s (%d)...\n", name, 
clock);
+       ksft_print_msg("Testing clock_gettime for clock %s (%d)...\n", name, 
clock);
 
        if (sys_clock_gettime(clock, &start) < 0) {
                if (errno == EINVAL) {
                        vdso_ret = vdso_clock_gettime(clock, &vdso);
                        if (vdso_ret == -EINVAL) {
-                               printf("[OK]\tNo such clock.\n");
+                               ksft_test_result_skip("No such clock.\n");
                        } else {
-                               printf("[FAIL]\tNo such clock, but 
__vdso_clock_gettime returned %d\n", vdso_ret);
-                               nerrs++;
+                               ksft_test_result_fail("No such clock, but 
__vdso_clock_gettime returned %d\n",
+                                                     vdso_ret);
                        }
                } else {
-                       printf("[WARN]\t clock_gettime(%d) syscall returned 
error %d\n", clock, errno);
+                       ksft_test_result_skip("clock_gettime(%d) syscall 
returned error %d\n",
+                                             clock, errno);
                }
                return;
        }
@@ -280,30 +276,32 @@ static void test_one_clock_gettime(int clock, const char 
*name)
        end_ret = sys_clock_gettime(clock, &end);
 
        if (vdso_ret != 0 || end_ret != 0) {
-               printf("[FAIL]\tvDSO returned %d, syscall errno=%d\n",
-                      vdso_ret, errno);
-               nerrs++;
+               ksft_test_result_fail("vDSO returned %d, syscall errno=%d\n", 
vdso_ret, errno);
                return;
        }
 
-       printf("\t%llu.%09ld %llu.%09ld %llu.%09ld\n",
-              (unsigned long long)start.tv_sec, start.tv_nsec,
-              (unsigned long long)vdso.tv_sec, vdso.tv_nsec,
-              (unsigned long long)end.tv_sec, end.tv_nsec);
+       ksft_print_msg("\t%llu.%09ld %llu.%09ld %llu.%09ld\n",
+                      (unsigned long long)start.tv_sec, start.tv_nsec,
+                      (unsigned long long)vdso.tv_sec, vdso.tv_nsec,
+                      (unsigned long long)end.tv_sec, end.tv_nsec);
 
        if (!ts_leq(&start, &vdso) || !ts_leq(&vdso, &end)) {
-               printf("[FAIL]\tTimes are out of sequence\n");
-               nerrs++;
+               ksft_test_result_fail("Times are out of sequence\n");
                return;
        }
 
-       printf("[OK]\tTest Passed.\n");
+       ksft_test_result_pass("Test Passed.\n");
 }
 
 static void test_clock_gettime(void)
 {
        if (!vdso_clock_gettime) {
-               printf("[SKIP]\tNo vDSO, so skipping clock_gettime() tests\n");
+               for (int clock = 0; clock < ARRAY_SIZE(clocknames); clock++)
+                       ksft_test_result_skip("No vDSO, so skipping %s\n", 
clocknames[clock]);
+
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests -1\n");
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests min\n");
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests max\n");
                return;
        }
 
@@ -321,19 +319,20 @@ static void test_one_clock_gettime64(int clock, const 
char *name)
        struct __kernel_timespec start, vdso, end;
        int vdso_ret, end_ret;
 
-       printf("[RUN]\tTesting clock_gettime64 for clock %s (%d)...\n", name, 
clock);
+       ksft_print_msg("Testing clock_gettime64 for clock %s (%d)...\n", name, 
clock);
 
        if (sys_clock_gettime64(clock, &start) < 0) {
                if (errno == EINVAL) {
                        vdso_ret = vdso_clock_gettime64(clock, &vdso);
                        if (vdso_ret == -EINVAL) {
-                               printf("[OK]\tNo such clock.\n");
+                               ksft_test_result_skip("No such clock.\n");
                        } else {
-                               printf("[FAIL]\tNo such clock, but 
__vdso_clock_gettime64 returned %d\n", vdso_ret);
-                               nerrs++;
+                               ksft_test_result_fail("No such clock, but 
__vdso_clock_gettime64 returned %d\n",
+                                                     vdso_ret);
                        }
                } else {
-                       printf("[WARN]\t clock_gettime64(%d) syscall returned 
error %d\n", clock, errno);
+                       ksft_test_result_skip("clock_gettime64(%d) syscall 
returned error %d\n",
+                                             clock, errno);
                }
                return;
        }
@@ -342,30 +341,32 @@ static void test_one_clock_gettime64(int clock, const 
char *name)
        end_ret = sys_clock_gettime64(clock, &end);
 
        if (vdso_ret != 0 || end_ret != 0) {
-               printf("[FAIL]\tvDSO returned %d, syscall errno=%d\n",
-                      vdso_ret, errno);
-               nerrs++;
+               ksft_test_result_fail("vDSO returned %d, syscall errno=%d\n", 
vdso_ret, errno);
                return;
        }
 
-       printf("\t%llu.%09lld %llu.%09lld %llu.%09lld\n",
-              (unsigned long long)start.tv_sec, start.tv_nsec,
-              (unsigned long long)vdso.tv_sec, vdso.tv_nsec,
-              (unsigned long long)end.tv_sec, end.tv_nsec);
+       ksft_print_msg("\t%llu.%09lld %llu.%09lld %llu.%09lld\n",
+                      (unsigned long long)start.tv_sec, start.tv_nsec,
+                      (unsigned long long)vdso.tv_sec, vdso.tv_nsec,
+                      (unsigned long long)end.tv_sec, end.tv_nsec);
 
        if (!ts64_leq(&start, &vdso) || !ts64_leq(&vdso, &end)) {
-               printf("[FAIL]\tTimes are out of sequence\n");
-               nerrs++;
+               ksft_test_result_fail("Times are out of sequence\n");
                return;
        }
 
-       printf("[OK]\tTest Passed.\n");
+       ksft_test_result_pass("Test Passed.\n");
 }
 
 static void test_clock_gettime64(void)
 {
        if (!vdso_clock_gettime64) {
-               printf("[SKIP]\tNo vDSO, so skipping clock_gettime64() 
tests\n");
+               for (int clock = 0; clock < ARRAY_SIZE(clocknames); clock++)
+                       ksft_test_result_skip("No vDSO, so skipping %s\n", 
clocknames[clock]);
+
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests -1\n");
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests min\n");
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime() 
tests max\n");
                return;
        }
 
@@ -384,14 +385,18 @@ static void test_gettimeofday(void)
        struct timezone sys_tz, vdso_tz;
        int vdso_ret, end_ret;
 
-       if (!vdso_gettimeofday)
+       if (!vdso_gettimeofday) {
+               ksft_test_result_skip("No vDSO, so skipping clock_gettime64() 
tests\n");
                return;
+       }
 
-       printf("[RUN]\tTesting gettimeofday...\n");
+       ksft_print_msg("Testing gettimeofday...\n");
+
+       /* Make sure that passing NULL for tz doesn't crash. */
+       vdso_gettimeofday(&vdso, NULL);
 
        if (sys_gettimeofday(&start, &sys_tz) < 0) {
-               printf("[FAIL]\tsys_gettimeofday failed (%d)\n", errno);
-               nerrs++;
+               ksft_test_result_fail("sys_gettimeofday failed (%d)\n", errno);
                return;
        }
 
@@ -399,39 +404,36 @@ static void test_gettimeofday(void)
        end_ret = sys_gettimeofday(&end, NULL);
 
        if (vdso_ret != 0 || end_ret != 0) {
-               printf("[FAIL]\tvDSO returned %d, syscall errno=%d\n",
-                      vdso_ret, errno);
-               nerrs++;
+               ksft_test_result_fail("vDSO returned %d, syscall errno=%d\n", 
vdso_ret, errno);
                return;
        }
 
-       printf("\t%llu.%06ld %llu.%06ld %llu.%06ld\n",
-              (unsigned long long)start.tv_sec, start.tv_usec,
-              (unsigned long long)vdso.tv_sec, vdso.tv_usec,
-              (unsigned long long)end.tv_sec, end.tv_usec);
+       ksft_print_msg("\t%llu.%06ld %llu.%06ld %llu.%06ld\n",
+                      (unsigned long long)start.tv_sec, start.tv_usec,
+                      (unsigned long long)vdso.tv_sec, vdso.tv_usec,
+                      (unsigned long long)end.tv_sec, end.tv_usec);
 
        if (!tv_leq(&start, &vdso) || !tv_leq(&vdso, &end)) {
-               printf("[FAIL]\tTimes are out of sequence\n");
-               nerrs++;
+               ksft_test_result_fail("Times are out of sequence\n");
+               return;
        }
 
        if (sys_tz.tz_minuteswest == vdso_tz.tz_minuteswest &&
            sys_tz.tz_dsttime == vdso_tz.tz_dsttime) {
-               printf("[OK]\ttimezones match: minuteswest=%d, dsttime=%d\n",
-                      sys_tz.tz_minuteswest, sys_tz.tz_dsttime);
+               ksft_test_result_pass("timezones match: minuteswest=%d, 
dsttime=%d\n",
+                                     sys_tz.tz_minuteswest, sys_tz.tz_dsttime);
        } else {
-               printf("[FAIL]\ttimezones do not match\n");
-               nerrs++;
+               ksft_test_result_fail("timezones do not match\n");
        }
-
-       /* And make sure that passing NULL for tz doesn't crash. */
-       vdso_gettimeofday(&vdso, NULL);
 }
 
 int main(int argc, char **argv)
 {
        name = (const char **)&names[VDSO_NAMES];
 
+       ksft_print_header();
+       ksft_set_plan(7 + ARRAY_SIZE(clocknames) * 2 + 
sysconf(_SC_NPROCESSORS_ONLN));
+
        fill_function_pointers();
 
        test_clock_gettime();
@@ -444,5 +446,5 @@ int main(int argc, char **argv)
         */
        test_getcpu();
 
-       return nerrs ? 1 : 0;
+       ksft_finished();
 }
-- 
2.39.2


Reply via email to