syscalls/fremovexattr: Add fremovexattr() tests
PATCH 1/1 syscalls/fremovexattr: Add fremovexattr() tests
Following the same logic and tests used to test removexattr() syscall, this commit implements tests for fremovexattr(). It only differs from removexattr() on the given arguments: using a file descriptor instead of the filename.
Kernel has different entry points for both, with slightly different execution paths, mainly related to dealing with the passed file descriptor.
--- runtest/syscalls | 3 + .../kernel/syscalls/fremovexattr/.gitignore | 2 + .../kernel/syscalls/fremovexattr/Makefile | 8 ++ .../syscalls/fremovexattr/fremovexattr01.c | 105 ++++++++++++++ .../syscalls/fremovexattr/fremovexattr02.c | 130 ++++++++++++++++++ 5 files changed, 248 insertions(+) create mode 100644 testcases/kernel/syscalls/fremovexattr/.gitignore create mode 100644 testcases/kernel/syscalls/fremovexattr/Makefile create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr01.c create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr02.c
runtest/syscalls +3 -0
@@ -319,6 +319,9 @@ fork14 fork14 fpathconf01 fpathconf01 +fremovexattr01 fremovexattr01 +fremovexattr02 fremovexattr02 + fstat01 fstat01 fstat01_64 fstat01_64 fstat02 fstat02
testcases/kernel/syscalls/fremovexattr/.gitignore new file +2 -0
@@ -0,0 +1,2 @@ +fremovexattr01 +fremovexattr02
testcases/kernel/syscalls/fremovexattr/Makefile new file +8 -0
@@ -0,0 +1,8 @@ +# Copyright (c) 2018 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +105 -0
105 lines not on this page · raw message
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +130 -0
130 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH 1/1 syscalls/fremovexattr: Add fremovexattr() tests
Quoted 7 lines · Rafael David Tinoco
Fixes #276Following the same logic and tests used to test
removexattr()syscall, this commit implements tests forfremovexattr(). It only differs fromremovexattr()on the given arguments: using a file descriptor instead of the filename.
Quoted 5 lines
Kernel has different entry points for both, with slightly different execution paths, mainly related to dealing with the passed file descriptor.
Signed-off-by Rafael David Tinoco <[email protected]>
Sorry, Ignore this one please, sending out a v2 with a small fix PLUS lremovexattr() test as well, both Fixing: #276. Thanks!
PATCH v2 1/2 syscalls/fremovexattr: Add fremovexattr() tests
Following the same logic and tests used to test removexattr() syscall, this commit implements tests for fremovexattr(). It only differs from removexattr() on the given arguments: using a file descriptor instead of the filename.
Kernel has different entry points for both, with slightly different execution paths, mainly related to dealing with the passed file descriptor.
--- runtest/syscalls | 3 + .../kernel/syscalls/fremovexattr/.gitignore | 2 + .../kernel/syscalls/fremovexattr/Makefile | 8 ++ .../syscalls/fremovexattr/fremovexattr01.c | 106 ++++++++++++++ .../syscalls/fremovexattr/fremovexattr02.c | 130 ++++++++++++++++++ 5 files changed, 249 insertions(+) create mode 100644 testcases/kernel/syscalls/fremovexattr/.gitignore create mode 100644 testcases/kernel/syscalls/fremovexattr/Makefile create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr01.c create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr02.c
runtest/syscalls +3 -0
@@ -319,6 +319,9 @@ fork14 fork14 fpathconf01 fpathconf01 +fremovexattr01 fremovexattr01 +fremovexattr02 fremovexattr02 + fstat01 fstat01 fstat01_64 fstat01_64 fstat02 fstat02
testcases/kernel/syscalls/fremovexattr/.gitignore new file +2 -0
@@ -0,0 +1,2 @@ +fremovexattr01 +fremovexattr02
testcases/kernel/syscalls/fremovexattr/Makefile new file +8 -0
@@ -0,0 +1,8 @@ +# Copyright (c) 2018 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +106 -0
106 lines not on this page · raw message
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +130 -0
130 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH v2 2/2 syscalls/lremovexattr: Add lremovexattr() test
This commit implements a test for lremovexattr(). According to attr(5), extended attributes are interpreted differently among files, directories and symbolic links. User attributes are only allowed for regular files and directories, thus the need to test security.* attributes being removed from symbolic links.
--- runtest/syscalls | 2 + .../kernel/syscalls/lremovexattr/.gitignore | 1 + .../kernel/syscalls/lremovexattr/Makefile | 8 + .../syscalls/lremovexattr/lremovexattr01.c | 140 ++++++++++++++++++ 4 files changed, 151 insertions(+) create mode 100644 testcases/kernel/syscalls/lremovexattr/.gitignore create mode 100644 testcases/kernel/syscalls/lremovexattr/Makefile create mode 100644 testcases/kernel/syscalls/lremovexattr/lremovexattr01.c
runtest/syscalls +2 -0
@@ -581,6 +581,8 @@ llseek01 llseek01 llseek02 llseek02 llseek03 llseek03 +lremovexattr01 lremovexattr01 + lseek01 lseek01 lseek02 lseek02 lseek07 lseek07
testcases/kernel/syscalls/lremovexattr/.gitignore new file +1 -0
@@ -0,0 +1 @@ +lremovexattr01
testcases/kernel/syscalls/lremovexattr/Makefile new file +8 -0
@@ -0,0 +1,8 @@ +# Copyright (c) 2018 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/lremovexattr/lremovexattr01.c new file +140 -0
140 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH v2 1/2 syscalls/fremovexattr: Add fremovexattr() tests
In reply to Rafael David TinocoHi!
Quoted 23 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +23
-0+/* +* Test Name: fremovexattr01 +* +* Description: +* Like removexattr(2), fremovexattr(2) also removes an extended attribute, +* identified by a name, from a file but, instead of using a filename path, it +* uses a descriptor. This test verifies that a simple call to fremovexattr(2) +* removes, indeed, a previously set attribute key/value from a file. +*/ + +#include "config.h" +#include <errno.h> +#include <stdlib.h> + +#ifdef HAVE_SYS_XATTR_H +# include <sys/xattr.h> +#endif + +#include "tst_test.h" + +#ifdef HAVE_SYS_XATTR_H + +#define ENOATTR ENODATA
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 39
Quoted 10 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +10
-0+ +#define XATTR_TEST_KEY "user.testkey" +#define XATTR_TEST_VALUE "this is a test value" +#define XATTR_TEST_VALUE_SIZE 20 + +#define MNTPOINT "mntpoint" +#define FNAME MNTPOINT"/fremovexattr01testfile" + +static int fd =-1 ; +static char *got_value;
Why not just static char got_value[XATTR_TEST_VALUE_SIZE]?
Quoted 24 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +24
-0+static void verify_fremovexattr (void ) +{ +SAFE_FSETXATTR (fd,XATTR_TEST_KEY ,XATTR_TEST_VALUE , +XATTR_TEST_VALUE_SIZE ,XATTR_CREATE ); + +TEST (fremovexattr (fd,XATTR_TEST_KEY )); + +if (TST_RET !=0 ) { +tst_res (TFAIL |TTERRNO ,"fremovexattr(2) failed" ); +return ; + } + +memset (got_value,0 ,XATTR_TEST_VALUE_SIZE ); + +TEST (fgetxattr (fd,XATTR_TEST_KEY , got_value,XATTR_TEST_VALUE_SIZE )); + +if (TST_RET >=0 ) { +tst_res (TFAIL ,"fremovexattr(2) did not remove attribute" ); +return ; + } + +if (TST_RET <0 &&TST_ERR !=ENOATTR ) { +tst_brk (TBROK ,"fremovexattr(2) could not verify removal" ); +return ;
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 74
Quoted 10 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +10
-0+ } + +tst_res (TPASS ,"fremovexattr(2) removed attribute as expected" ); +} + +static void cleanup (void ) +{ +free (got_value); + +close (fd);
^ if (fd > 0) SAFE_CLOSE(fd); would be slightly better here as it would emit warning if the close() has failed.
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 81
Quoted 7 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +7
-0+} + +static void setup (void ) +{ +SAFE_TOUCH (FNAME ,0644 ,NULL ); + + fd =SAFE_OPEN (FNAME ,O_RDWR ,NULL );
^
open() is a variable argument function and the third argument is an integer but only in a case that we passed O_CREAT in the flags, if we are not creating the file it should be omitted
So if we want to create the file, we don't have to call the SAFE_TOUCH() but pass O_CREAT in the flags and pass the mode as third argument here as:
fd = SAFE_OPEN(FNAME, O_RDWR | O_CREAT, 0644);
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 87
Quoted 5 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +5
-0+TEST (fremovexattr (fd,XATTR_TEST_KEY )); + +if (TST_RET ==-1 &&TST_ERR ==EOPNOTSUPP ) { +tst_brk (TCONF ,"fremovexattr(2) not supported" ); +return ;
^
No need for the return here.
Quoted 119 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +19
-0+ } + + got_value =SAFE_MALLOC (XATTR_TEST_VALUE_SIZE ); +} + +static struct tst_test test = { + .setup = setup, + .test_all = verify_fremovexattr, + .cleanup = cleanup, + .mntpoint =MNTPOINT , + .mount_device =1 , + .all_filesystems =1 , + .needs_tmpdir =1 , + .needs_root =1 , +}; + +#else /* HAVE_SYS_XATTR_H */ +TST_TEST_TCONF ("<sys/xattr.h> does not exist" ); +#endif testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +94
-0@@ -0,0 +1,130 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* +* Copyright (c) 2018 Linaro Limited. All rights reserved. +* Author: Rafael David Tinoco <[email protected]> +*/ + +/* +* Test Name: fremovexattr02 +* +* Test cases:: +* 1) fremovexattr(2) fails if the named attribute does not exist. +* 2) fremovexattr(2) fails if file descriptor is not valid. +* 3) fremovexattr(2) fails if named attribute has an invalid address. +* +* Expected Results: +* fremovexattr(2) should return -1 and set errno to ENODATA. +* fremovexattr(2) should return -1 and set errno to EBADF. +* fremovexattr(2) should return -1 and set errno to EFAULT. +*/ + +#include "config.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> +#include <fcntl.h> + +#ifdef HAVE_SYS_XATTR_H +# include <sys/xattr.h> +#endif + +#include "tst_test.h" + +#ifdef HAVE_SYS_XATTR_H + +#define XATTR_TEST_KEY "user.testkey" + +#define MNTPOINT "mntpoint" +#define FNAME MNTPOINT"/fremovexattr02testfile" + +static int fd =-1 ; + +struct test_case { +int fd; +char *key; +char *value; +char *gotvalue; +int size; +int exp_ret; +int exp_err; +}; + +struct test_case tc[] = { + {/* case 1: attribute does not exist */ + .key =XATTR_TEST_KEY , + .exp_ret =-1 , + .exp_err =ENODATA , + }, + {/* case 2: file descriptor is invalid */ + .fd =-1 , + .key =XATTR_TEST_KEY , + .exp_ret =-1 , + .exp_err =EBADF , + }, + {/* case 3: bad name attribute */ + .exp_ret =-1 , + .exp_err =EFAULT , + }, +}; + +static void verify_fremovexattr (unsigned int i) +{ +TEST (fremovexattr (tc[i].fd, tc[i].key)); + +if (TST_RET ==-1 &&TST_ERR ==EOPNOTSUPP ) +tst_brk (TCONF ,"fremovexattr(2) not supported" ); + +if (tc[i].exp_ret ==TST_RET ) { + +if (tc[i].exp_err) { +if (tc[i].exp_err ==TST_ERR ) { +tst_res (TPASS ,"fremovexattr(2) passed" ); +return ; + } + }else { +tst_res (TPASS ,"fremovexattr(2) passed" ); +return ; + } + } + +tst_res (TFAIL |TTERRNO ,"fremovexattr(2) failed" ); +} + +static void cleanup (void ) +{
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c line 104
Quoted 10 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +10
-0+if (fd >0 ) +SAFE_CLOSE (fd); +} + +static void setup (void ) +{ +size_t i =0 ; + +SAFE_TOUCH (FNAME ,0644 ,NULL ); + fd =SAFE_OPEN (FNAME ,O_RDWR ,NULL );
Here as well no need for the SAFE_TOUCH().
Quoted 11 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +11
-0+for (i =0 ; i <ARRAY_SIZE (tc); i++) { + +if (tc[i].fd !=-1 ) + tc[i].fd = fd; + +if (!tc[i].key && tc[i].exp_err ==EFAULT ) + tc[i].key =tst_get_bad_addr (cleanup); + } +} + +static struct tst_test test = {
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c line 126
Quoted 10 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +10
-0+ .setup = setup, + .test = verify_fremovexattr, + .cleanup = cleanup, + .tcnt = ARRAY_SIZE(tc), + .mntpoint = MNTPOINT, + .mount_device = 1, + .all_filesystems = 1, + .needs_tmpdir = 1, + .needs_root = 1, +};
I'm wondering if we need the all_filesystem here, I guess that the ENODATA test will reach down to the filesystem driver, so it's probably relevant here.
Quoted 9 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +3
-0+#else /* HAVE_SYS_XATTR_H */ +TST_TEST_TCONF ("<sys/xattr.h> does not exist" ); +#endif Signature · 5 lines
2.19.1 -- Mailing list info: https://lists.linux.it/listinfo/ltp
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v2 1/2 syscalls/fremovexattr: Add fremovexattr() tests
Quoted 4 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 39
Quoted 2 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +2
-0+static int fd =-1 ; +static char *got_value;Why not just static char got_value[XATTR_TEST_VALUE_SIZE]?
Of course =o) !! Will do.
Quoted 8 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 74
Quoted 5 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +5
-0+static void cleanup (void ) +{ +free (got_value); + +close (fd);^ if (fd > 0) SAFE_CLOSE(fd);
Missed this.
Quoted 4 lines
would be slightly better here as it would emit warning if the
close()has failed.
Quoted 14 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 81
Quoted 7 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +7
-0+} + +static void setup (void ) +{ +SAFE_TOUCH (FNAME ,0644 ,NULL ); + + fd =SAFE_OPEN (FNAME ,O_RDWR ,NULL );^
open()is a variable argument function and the third argument is an integer but only in a case that we passedO_CREATin the flags, if we are not creating the file it should be omitted
Sure! Auto mode, sorry.
Quoted 6 lines
Review
Quoted 4 lines
+++
b/testcases/kernel/syscalls/fremovexattr/fremovexattr02.c
...(quoted diff) +2
-0+ SAFE_TOUCH(FNAME, 0644, NULL); + fd = SAFE_OPEN(FNAME, O_RDWR, NULL);Here as well no need for the
SAFE_TOUCH().
Same.
Quoted 7 lines
Quoted 7 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +7
-0+static struct tst_test test = { + .setup = setup, + .test = verify_fremovexattr, + .cleanup = cleanup, + .tcnt =ARRAY_SIZE (tc), + .mntpoint =MNTPOINT , + .mount_device =1 ,
Quoted 8 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c line 102
Quoted 4 lines
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +4
-0+ .all_filesystems = 1, + .needs_tmpdir = 1, + .needs_root = 1, +};I'm wondering if we need the
all_filesystemhere, I guess that the ENODATA test will reach down to the filesystem driver, so it's probably relevant here.
Yep.. that is what I though.
Tks a lot Cyril, will send a v3.
o/
PATCH v3 1/2 syscalls/fremovexattr: Add fremovexattr() tests
In reply to Cyril HrubisFollowing the same logic and tests used to test removexattr() syscall, this commit implements tests for fremovexattr(). It only differs from removexattr() on the given arguments: using a file descriptor instead of the filename.
Kernel has different entry points for both, with slightly different execution paths, mainly related to dealing with the passed file descriptor.
--- runtest/syscalls | 3 + .../kernel/syscalls/fremovexattr/.gitignore | 2 + .../kernel/syscalls/fremovexattr/Makefile | 8 ++ .../syscalls/fremovexattr/fremovexattr01.c | 99 ++++++++++++++ .../syscalls/fremovexattr/fremovexattr02.c | 126 ++++++++++++++++++ 5 files changed, 238 insertions(+) create mode 100644 testcases/kernel/syscalls/fremovexattr/.gitignore create mode 100644 testcases/kernel/syscalls/fremovexattr/Makefile create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr01.c create mode 100644 testcases/kernel/syscalls/fremovexattr/fremovexattr02.c
runtest/syscalls +3 -0
@@ -319,6 +319,9 @@ fork14 fork14 fpathconf01 fpathconf01 +fremovexattr01 fremovexattr01 +fremovexattr02 fremovexattr02 + fstat01 fstat01 fstat01_64 fstat01_64 fstat02 fstat02
testcases/kernel/syscalls/fremovexattr/.gitignore new file +2 -0
@@ -0,0 +1,2 @@ +fremovexattr01 +fremovexattr02
testcases/kernel/syscalls/fremovexattr/Makefile new file +8 -0
@@ -0,0 +1,8 @@ +# Copyright (c) 2018 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c new file +99 -0
99 lines not on this page · raw message
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c new file +126 -0
126 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH v3 2/2 syscalls/lremovexattr: Add lremovexattr() test
This commit implements a test for lremovexattr(). According to attr(5), extended attributes are interpreted differently among files, directories and symbolic links. User attributes are only allowed for regular files and directories, thus the need to test security.* attributes being removed from symbolic links.
--- runtest/syscalls | 2 + .../kernel/syscalls/lremovexattr/.gitignore | 1 + .../kernel/syscalls/lremovexattr/Makefile | 8 ++ .../syscalls/lremovexattr/lremovexattr01.c | 132 ++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 testcases/kernel/syscalls/lremovexattr/.gitignore create mode 100644 testcases/kernel/syscalls/lremovexattr/Makefile create mode 100644 testcases/kernel/syscalls/lremovexattr/lremovexattr01.c
runtest/syscalls +2 -0
@@ -582,6 +582,8 @@ llseek01 llseek01 llseek02 llseek02 llseek03 llseek03 +lremovexattr01 lremovexattr01 + lseek01 lseek01 lseek02 lseek02 lseek07 lseek07
testcases/kernel/syscalls/lremovexattr/.gitignore new file +1 -0
@@ -0,0 +1 @@ +lremovexattr01
testcases/kernel/syscalls/lremovexattr/Makefile new file +8 -0
@@ -0,0 +1,8 @@ +# Copyright (c) 2018 - Linaro Limited. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-or-later + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/lremovexattr/lremovexattr01.c new file +132 -0
132 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH v3 2/2 syscalls/lremovexattr: Add lremovexattr() test
Hi!
Pushed with minor changes, see below, thanks.
testcases/kernel/syscalls/lremovexattr/lremovexattr01.c +5 -7
@@ -18,7 +18,7 @@* Note: * According to attr(5), extended attributes are interpreted differently from * regular files, directories and symbolic links. User attributes are only -* allowed for regular files and directories, thus the need of using security.* +* allowed for regular files and directories, thus the need of using trusted.* * attributes for this test. */
@@ -39,7 +39,7 @@#define ENOATTR ENODATA -#define XATTR_KEY "security.key1" +#define XATTR_KEY "trusted.key1"#define XATTR_VALUE "file and link"#define XATTR_VALUE_SIZE 13
@@ -79,8 +79,8 @@ static void verify_lremovexattr(void)return ; } -if (TST_RET <0 &&TST_ERR !=ENOATTR ) { -tst_brk (TBROK ,"lgetxattr(2) failed unexpectedly" ); +if (TST_ERR !=ENOATTR ) { +tst_brk (TBROK |TTERRNO ,"lgetxattr(2) failed unexpectedly" );return ; }
@@ -111,10 +111,8 @@ static void setup(void) {SAFE_TOUCH (FILENAME ,0644 ,NULL ); -if (symlink (FILENAME ,SYMLINK ) <0 ) { +if (symlink (FILENAME ,SYMLINK ) <0 )tst_brk (TCONF ,"symlink() not supported" ); -return ; - } }static struct tst_test test = {
I've found that the trusted attributes works as well and cannot be disabled in kernel (at least for ext3 security attributes have their own CONFIG switches).
The rest is just removed unreachable or always true code.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v3 2/2 syscalls/lremovexattr: Add lremovexattr() test
Quoted 2 lines · Cyril Hrubis
Hi!
Pushed with minor changes, see below, thanks.
Thanks a lot Cyril!
Best,
Signature · 2 lines
Rafael D. Tinoco Linaro Kernel Validation
PATCH v3 1/2 syscalls/fremovexattr: Add fremovexattr() tests
In reply to Rafael David TinocoHi!
Pushed with minor simplification, mainly removing unreachable branches from the second test, thanks.
Diff:
testcases/kernel/syscalls/fremovexattr/fremovexattr01.c +3 -4
@@ -50,9 +50,7 @@ static void verify_fremovexattr(void)return ; } -memset (&got_value,0 ,XATTR_TEST_VALUE_SIZE ); - -TEST (fgetxattr (fd,XATTR_TEST_KEY , got_value,XATTR_TEST_VALUE_SIZE )); +TEST (fgetxattr (fd,XATTR_TEST_KEY , got_value,sizeof (got_value)));if (TST_RET >=0 ) {tst_res (TFAIL ,"fremovexattr(2) did not remove attribute" );
@@ -60,7 +58,8 @@ static void verify_fremovexattr(void) }if (TST_RET <0 &&TST_ERR !=ENOATTR ) { -tst_brk (TBROK ,"fremovexattr(2) could not verify removal" ); +tst_brk (TBROK |TTERRNO , +"fremovexattr(2) could not verify removal" );return ; }
testcases/kernel/syscalls/fremovexattr/fremovexattr02.c +10 -16
@@ -42,24 +42,20 @@ static int fd = -1;struct test_case {int fd;char *key; -int exp_ret;int exp_err; };struct test_case tc[] = { {/* case 1: attribute does not exist */ .key =XATTR_TEST_KEY , - .exp_ret =-1 , .exp_err =ENODATA , }, {/* case 2: file descriptor is invalid */ .fd =-1 , .key =XATTR_TEST_KEY , - .exp_ret =-1 , .exp_err =EBADF , }, {/* case 3: bad name attribute */ - .exp_ret =-1 , .exp_err =EFAULT , }, };
@@ -71,20 +67,19 @@ static void verify_fremovexattr(unsigned int i)if (TST_RET ==-1 &&TST_ERR ==EOPNOTSUPP )tst_brk (TCONF ,"fremovexattr(2) not supported" ); -if (tc[i].exp_ret ==TST_RET ) { - -if (tc[i].exp_err) { -if (tc[i].exp_err ==TST_ERR ) { -tst_res (TPASS ,"fremovexattr(2) passed" ); -return ; - } - }else { -tst_res (TPASS ,"fremovexattr(2) passed" ); -return ; +if (TST_RET ==-1 ) { +if (tc[i].exp_err ==TST_ERR ) { +tst_res (TPASS |TTERRNO , +"fremovexattr(2) failed expectedly" ); + }else { +tst_res (TFAIL |TTERRNO , +"fremovexattr(2) should fail with %s" , +tst_strerrno (tc[i].exp_err)); } +return ; } -tst_res (TFAIL |TTERRNO ,"fremovexattr(2) failed" ); +tst_res (TFAIL ,"fremovexattr(2) returned %li" ,TST_RET ); } --
Cyril Hrubis
[email protected]
PATCH v3 1/2 syscalls/fremovexattr: Add fremovexattr() tests
Quoted 4 lines · Cyril Hrubis
Hi!
Pushed with minor simplification, mainly removing unreachable branches from the second test, thanks.
Thanks a lot Cyril!