diff mbox series

[v7,1/2] selftests: tmpfs: Add Test-skip if not run as root

Message ID 20250102100459.1291426-2-cvam0000@gmail.com (mailing list archive)
State New
Headers show
Series selftests: tmpfs: Add kselftest support | expand

Commit Message

Shivam Chaudhary Jan. 2, 2025, 10:04 a.m. UTC
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 <cvam0000@gmail.com>
---
 tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Shuah Khan Jan. 2, 2025, 9:54 p.m. UTC | #1
On 1/2/25 03:04, Shivam Chaudhary wrote:
> 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

How are you running this test to see the before ad after
results?

thanks,
-- Shuah
Shivam Chaudhary Jan. 3, 2025, 4:36 p.m. UTC | #2
On 03/01/25 3:24 AM, Shuah Khan wrote:
> On 1/2/25 03:04, Shivam Chaudhary wrote:
>> 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
>
> How are you running this test to see the before ad after
> results?

I'm doing the unit test, meaning, I'm building the test separatley and 
running it

to ensure the the code works as expected.

thanks

--Shivam
Shuah Khan Jan. 3, 2025, 4:52 p.m. UTC | #3
On 1/3/25 09:36, Shivam Chaudhary wrote:
> 
> On 03/01/25 3:24 AM, Shuah Khan wrote:
>> On 1/2/25 03:04, Shivam Chaudhary wrote:
>>> 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
>>
>> How are you running this test to see the before ad after
>> results?
> 
> I'm doing the unit test, meaning, I'm building the test separatley and running it
> 
> to ensure the the code works as expected.
> 

When you run "make kselftest TARGETS=tmpfs", do you see duplicate
ktap output?

Rum the command and send me the output.

thanks,
-- Shuah
diff mbox series

Patch

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