mbox series

[v4,0/2] kselftest: tmpfs: Add ksft macros and skip if no root

Message ID 20241105202639.1977356-1-cvam0000@gmail.com
Headers show
Series kselftest: tmpfs: Add ksft macros and skip if no root | expand

Message

Shivam Chaudhary Nov. 5, 2024, 8:26 p.m. UTC
This version 4 patch series replace direct error handling methods with ksft
macros, which provide better reporting.Currently, when the tmpfs test runs,
it does not display any output if it passes,and if it fails
(particularly when not run as root),it simply exits without any warning or message.

This series of patch adds:

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

2. Skip if not run as root.

3. Replace direct error handling with 'ksft_test_result_*',
   'ksft_print_msg' and KSFT_SKIP  macros for better reporting.

v3->v4:
         - Start a patchset
         - Split patch into smaller pathes to make it easy to review.
  Patch1 Replace  'ksft_test_result_skip' with 'KSFT_SKIP' during root run check.
  Patch2 Replace  'ksft_test_result_fail' with 'KSFT_SKIP' where fail does not make sense,
         or failure could be due to not unsupported APIs with appropriate warnings.
  

v3: https://lore.kernel.org/all/20241028185756.111832-1-cvam0000@gmail.com/

v2->v3:
        - Remove extra ksft_set_plan()
        - Remove function for unshare()
        - Fix the comment style
v2: https://lore.kernel.org/all/20241026191621.2860376-1-cvam0000@gmail.com/

v1->v2:
        - Make the commit message more clear.
v1: https://lore.kernel.org/all/20241024200228.1075840-1-cvam0000@gmail.com/T/#u


thanks 
Shivam

Shivam Chaudhary (2):
  selftests:tmpfs: Add Skip test if not run as root
  selftests:tmpfs: Add kselftest support to tmpfs

 .../selftests/tmpfs/bug-link-o-tmpfile.c      | 79 +++++++++++++++----
 1 file changed, 62 insertions(+), 17 deletions(-)

Comments

Shuah Khan Nov. 6, 2024, 5:06 p.m. UTC | #1
On 11/5/24 13:26, Shivam Chaudhary wrote:
> Add skip test 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
> 
> - With root
> TAP version 13
> 1..1
> 
> Signed-off-by: Shivam Chaudhary <cvam0000@gmail.com>
> ---
>    
>   tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c | 13 +++++++++++++
>   1 file changed, 13 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..cdab1e8c0392 100644
> --- a/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c
> +++ b/tools/testing/selftests/tmpfs/bug-link-o-tmpfile.c
> @@ -23,10 +23,23 @@
>   #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_print_msg("Skip : Need to run as root");
> +		exit(KSFT_SKIP);

These two can be replaced by ksft_exit_fail_msg() - refer to the
kselftest.h for the right API to use for each of these cases.

> +
> +	}
> +
>   	if (unshare(CLONE_NEWNS) == -1) {
>   		if (errno == ENOSYS || errno == EPERM) {
>   			fprintf(stderr, "error: unshare, errno %d\n", errno);

thanks,
-- Shuah