[LTP] [PATCH v2] open08.c: Use TST_EXP_FAIL2() and SAFE_CLOSE()

Petr Vorel pvorel@suse.cz
Mon Jul 11 08:40:57 CEST 2022


Hi Avinesh,

> Make use of TST_EXP_FAIL2() macro with testcase descriptions
+1

Also +1 for static :).

...
> +++ b/testcases/kernel/syscalls/open/open08.c
> @@ -33,34 +33,20 @@ static struct test_case_t {
>  	char **fname;
>  	int flags;
>  	int error;
> +	const char *desc;
>  } tcases[] = {
> -	{&existing_fname, O_CREAT | O_EXCL, EEXIST},
> -	{&dir_fname, O_RDWR, EISDIR},
> -	{&existing_fname, O_DIRECTORY, ENOTDIR},
> -	{&toolong_fname, O_RDWR, ENAMETOOLONG},
> -	{&user2_fname, O_WRONLY, EACCES},
> -	{&unmapped_fname, O_CREAT, EFAULT}
> +	{&existing_fname, O_CREAT | O_EXCL, EEXIST, "open() existing file with 'O_CREAT | O_EXCL'"},
> +	{&dir_fname, O_RDWR, EISDIR, "open() existing directory with write access"},
> +	{&existing_fname, O_DIRECTORY, ENOTDIR, "open() non-directory pathname with O_DIRECTORY"},
> +	{&toolong_fname, O_RDWR, ENAMETOOLONG, "open() too long pathname"},
> +	{&user2_fname, O_WRONLY, EACCES, "open() file without requested access rights"},
> +	{&unmapped_fname, O_CREAT, EFAULT, "open() pathname with bad address"}
>  };

Reviewed-by: Petr Vorel <pvorel@suse.cz>

Instead of text descriptions I'd just print flags:

#define FLAGS_DESC(x) .flags = x, .desc = #x

static struct test_case_t {
	char **fname;
	int flags;
	const char *desc;
	int error;
} tcases[] = {
	{&existing_fname, FLAGS_DESC(O_CREAT | O_EXCL), EEXIST},
	{&dir_fname, FLAGS_DESC(O_RDWR), EISDIR},
	{&existing_fname, FLAGS_DESC(O_DIRECTORY), ENOTDIR},
	{&toolong_fname, FLAGS_DESC(O_RDWR), ENAMETOOLONG},
	{&user2_fname, FLAGS_DESC(O_WRONLY), EACCES},
	{&unmapped_fname, FLAGS_DESC(O_CREAT), EFAULT},
};

# ./open08 
tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s
open08.c:52: TPASS: O_CREAT | O_EXCL : EEXIST (17)
open08.c:52: TPASS: O_RDWR : EISDIR (21)
open08.c:52: TPASS: O_DIRECTORY : ENOTDIR (20)
open08.c:52: TPASS: O_RDWR : ENAMETOOLONG (36)
open08.c:52: TPASS: O_WRONLY : EACCES (13)
open08.c:52: TPASS: O_CREAT : EFAULT (14)

If you agree, I can merge it with this change.

Kind regards,
Petr


More information about the ltp mailing list