Add 'ksft_exit_skip()', if  not run as root, with an appropriate
Warning.

Add 'ksft_print_header()' and 'ksft_set_plan()' to structure test
outputs more effectively.

Test logs:

Before Change:
- Without root
 error: unshare, errno 1

- With root
 No, output

After change:

- Without root
TAP version 13
1..1
ok 2 # SKIP This test needs root to run!
Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0

- With root
TAP version 13
1..1

Signed-off-by: Shivam Chaudhary <[email protected]>
---
 tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c 
b/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c
index b5c3ddb90942..657b64857e82 100644
--- a/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c
+++ b/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c
@@ -23,10 +23,22 @@
 #include <sys/mount.h>
 #include <unistd.h>
 
+#include "../kselftest.h"
+
 int main(void)
 {
        int fd;
 
+       // Setting up kselftest framework
+       ksft_print_header();
+       ksft_set_plan(1);
+
+       // Check if test is run as root
+       if (geteuid()) {
+               ksft_exit_skip("This test needs root to run!\n");
+               return 1;
+       }
+
        if (unshare(CLONE_NEWNS) == -1) {
                if (errno == ENOSYS || errno == EPERM) {
                        fprintf(stderr, "error: unshare, errno %d\n", errno);
-- 
2.34.1


Reply via email to