Listxattr related calls: new tests and testcase
v3 cover Listxattr related calls: new tests and testcase
v2 -> v3:
- Removed unnecessary null-termination for longpathname in llistxattr02 new testcase.
- Modified the code to be more readable and maintainable, this resulted in creating a new patch that pretty much does the same thing for llistxattr() tests.
- Started usign corresponding safe macros in the setup of all of the listxattr related tests. This resulted in a new patch that implements these safe macros.
v1 -> v2:
- Modified the setup for the new testcase in llistxattr02 and a testcase in listxattr02.
- Modified commit messages.
This series introduces new testcase for llistxattr02 and tests for flistxattr() and listxattr(). Safe macros are added for functions that set extended attribute values, and are being used in appropriate tests. The code in tests for llistxattr() was slightly modified to be more readable and easier to maintain, this practice was followed in creating new tests for flistxattr() and listxattr().
Dejan Jovicevic (5):
safe_macros: add safe_setxattr(), safe_lsetxattr() and
safe_fsetxattr()
llistxattr: moved to using safe macros
llistxattr: improved code readability and stability
llistxattr: new testcase for long path name flistxattr and listxattr: added tests
include/tst_safe_macros.h | 12 +++ lib/safe_macros.c | 66 +++++++++++++ runtest/syscalls | 8 ++ testcases/kernel/syscalls/.gitignore | 6 ++ testcases/kernel/syscalls/flistxattr/Makefile | 23 +++++ .../kernel/syscalls/flistxattr/flistxattr01.c | 102 ++++++++++++++++++++ .../kernel/syscalls/flistxattr/flistxattr02.c | 104 ++++++++++++++++++++ .../kernel/syscalls/flistxattr/flistxattr03.c | 97 +++++++++++++++++++ testcases/kernel/syscalls/listxattr/Makefile | 23 +++++ testcases/kernel/syscalls/listxattr/listxattr01.c | 94 ++++++++++++++++++ testcases/kernel/syscalls/listxattr/listxattr02.c | 105 +++++++++++++++++++++ testcases/kernel/syscalls/listxattr/listxattr03.c | 89 +++++++++++++++++ .../kernel/syscalls/llistxattr/llistxattr01.c | 46 +++------ .../kernel/syscalls/llistxattr/llistxattr02.c | 53 +++++------ .../kernel/syscalls/llistxattr/llistxattr03.c | 24 ++--- 15 files changed, 773 insertions(+), 79 deletions(-) create mode 100644 testcases/kernel/syscalls/flistxattr/Makefile create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr01.c create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr02.c create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr03.c create mode 100644 testcases/kernel/syscalls/listxattr/Makefile create mode 100644 testcases/kernel/syscalls/listxattr/listxattr01.c create mode 100644 testcases/kernel/syscalls/listxattr/listxattr02.c create mode 100644 testcases/kernel/syscalls/listxattr/listxattr03.c
Signature · 1 line
1.9.1
PATCH v3 1/5 safe_macros: add safe_setxattr(),
Added SAFE_SETXATTR(), SAFE_LSETXATTR() and SAFE_FSETXATTR() macros to simplify error checking in test preparation. Instead of calling the system function, checking for their return value and aborting the test if the operation has failed, just use corresponding safe macro.
--- include/tst_safe_macros.h | 12 +++++++++ lib/safe_macros.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+)
include/tst_safe_macros.h +12 -0
@@ -433,4 +433,16 @@ static inline sighandler_t safe_signal(const char *file, const int lineno, "execlp(%s, %s, ...) failed", file, arg); \ } while (0) +#define SAFE_SETXATTR (path, name, value, size, flags) \ + safe_setxattr(__FILE__, __LINE__, NULL, (path), (name), (value), (size), \ + (flags)) + +#define SAFE_LSETXATTR (path, name, value, size, flags) \ + safe_lsetxattr(__FILE__, __LINE__, NULL, (path), (name), (value), (size), \ + (flags)) + +#define SAFE_FSETXATTR (fd, name, value, size, flags) \ + safe_fsetxattr(__FILE__, __LINE__, NULL, (fd), (name), (value), (size), \ + (flags)) +#endif /* SAFE_MACROS_H__ */
lib/safe_macros.c +66 -0
69 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v3 1/5 safe_macros: add safe_setxattr(),
Hi!
include/tst_safe_macros.h static inline sighandler_t safe_signal(const char *file, const int lineno, · line 446
Quoted 11 lines
include/tst_safe_macros.h +11
-0+#define SAFE_SETXATTR (path, name, value, size, flags) \ + safe_setxattr(__FILE__, __LINE__, NULL, (path), (name), (value), (size), \ + (flags)) + +#define SAFE_LSETXATTR (path, name, value, size, flags) \ + safe_lsetxattr(__FILE__, __LINE__, NULL, (path), (name), (value), (size), \ + (flags)) + +#define SAFE_FSETXATTR (fd, name, value, size, flags) \ + safe_fsetxattr(__FILE__, __LINE__, NULL, (fd), (name), (value), (size), \ + (flags))
You are missing the function prototype for the safe_*setxattr() functions. And since these functions will not be exported to the old library you should add them here instead of the safe_macros_fn.h header. And, for the same reason, you don't have to pass NULL as a cleanup callback to these functions. You can just pass NULL to the tst_brkm() in the safe_macros.c.
Quoted 65 lines
#endif /*
SAFE_MACROS_H__*/lib/safe_macros.c +56
-0@@ -794,3 +794,69 @@ struct dirent *safe_readdir(const char *file, const int lineno, void (cleanup_fn errno = err;return rval; } + +int safe_setxattr (const char *file,const int lineno,void (cleanup_fn )(void ), +const char *path,const char *name,const void *value, +size_t size,int flags) +{ +int rval; + + rval =setxattr (path, name, value, size, flags); + +if (rval) { +if (errno ==ENOTSUP ) { +tst_brkm (TCONF , cleanup_fn, +"%s:%d: no xattr support in fs or mounted " +"without user_xattr option" , file, lineno); + } + +tst_brkm (TBROK |TERRNO , cleanup_fn,"%s:%d: setxattr() failed" , + file, lineno); + } + +return rval; +} + +int safe_lsetxattr (const char *file,const int lineno,void (cleanup_fn )(void ), +const char *path,const char *name,const void *value, +size_t size,int flags) +{ +int rval; + + rval =lsetxattr (path, name, value, size, flags); + +if (rval) { +if (errno ==ENOTSUP ) { +tst_brkm (TCONF , cleanup_fn, +"%s:%d: no xattr support in fs or mounted " +"without user_xattr option" , file, lineno); + } + +tst_brkm (TBROK |TERRNO , cleanup_fn,"%s:%d: lsetxattr() failed" , + file, lineno); + } + +return rval; +} + +int safe_fsetxattr (const char *file,const int lineno,void (cleanup_fn )(void ), +int fd,const char *name,const void *value,size_t size, +int flags) +{ +int rval; + + rval =fsetxattr (fd, name, value, size, flags); + +if (rval) { +if (errno ==ENOTSUP ) { + tst_brkm(TCONF, cleanup_fn,
lib/safe_macros.c struct dirent *safe_readdir(const char *file, const int lineno, void (cleanup_fn · line 862
Quoted 10 lines
lib/safe_macros.c +10
-0+"%s:%d: no xattr support in fs or mounted " + "without user_xattr option", file, lineno); + } + +tst_brkm (TBROK |TERRNO , cleanup_fn,"%s:%d: fsetxattr() failed" , + file, lineno); + } + +return rval; +}
Otherwise these safe macros looks like a good idea to me.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v3 2/5 llistxattr: moved to using safe macros
In reply to Dejan JovicevicApply newly created SAFE_LSETXATTR() macro to all files that test llistxattr().
--- .../kernel/syscalls/llistxattr/llistxattr01.c | 25 ++-------------------- .../kernel/syscalls/llistxattr/llistxattr02.c | 10 +-------- .../kernel/syscalls/llistxattr/llistxattr03.c | 10 +-------- 3 files changed, 4 insertions(+), 41 deletions(-)
testcases/kernel/syscalls/llistxattr/llistxattr01.c +2 -23
@@ -43,27 +43,6 @@#define VALUE_SIZE 4#define KEY_SIZE 17 -static void set_xattr (const char *path,const char *key) -{ -int n; - - n =lsetxattr (path, key,VALUE ,VALUE_SIZE ,XATTR_CREATE ); -if (n ==-1 ) { -if (errno ==ENOTSUP ) { -tst_brk (TCONF , -"no xattr support in fs or mounted " -"without user_xattr option" ); - } - -if (errno ==EEXIST ) { -tst_brk (TBROK ,"exist attribute %s" , key); - }else { -tst_brk (TBROK |TERRNO , -"lsetxattr() failed" ); - } - } -} -static int has_attribute (const char *list,int llen,const char *attr) {int i;
@@ -106,9 +85,9 @@ static void setup(void)SAFE_SYMLINK ("testfile" ,"symlink" ); -set_xattr ("testfile" ,SECURITY_KEY1 ); +SAFE_LSETXATTR ("testfile" ,SECURITY_KEY1 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); -set_xattr ("symlink" ,SECURITY_KEY2 ); +SAFE_LSETXATTR ("symlink" ,SECURITY_KEY2 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); }static struct tst_test test = {
testcases/kernel/syscalls/llistxattr/llistxattr02.c +1 -9
@@ -86,15 +86,7 @@ static void setup(void)SAFE_SYMLINK ("testfile" ,"symlink" ); - n =lsetxattr ("symlink" ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); -if (n ==-1 ) { -if (errno ==ENOTSUP ) { -tst_brk (TCONF ,"no xattr support in fs or " -"mounted without user_xattr option" ); - }else { -tst_brk (TBROK |TERRNO ,"lsetxattr() failed" ); - } - } +SAFE_LSETXATTR ("symlink" ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); }static struct tst_test test = {
testcases/kernel/syscalls/llistxattr/llistxattr03.c +1 -9
@@ -77,15 +77,7 @@ static void setup(void)SAFE_TOUCH (filename[1 ],0644 ,NULL ); - ret =lsetxattr (filename[1 ],SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); -if (ret ==-1 ) { -if (errno ==ENOTSUP ) { -tst_brk (TCONF ,"no xattr support in fs or " -"mounted without user_xattr option" ); - }else { -tst_brk (TBROK |TERRNO ,"lsetxattr() failed" ); - } - } +SAFE_LSETXATTR (filename[1 ],SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); }static struct tst_test test = {
Signature · 1 line
1.9.1
PATCH v3 2/5 llistxattr: moved to using safe macros
Hi!
This looks good.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v3 3/5 llistxattr: improved code readability and
In reply to Dejan JovicevicChanged bits of code, such as hardcoded magic constants, unnecessary else branches, way of passing array size to a function, removed unnecessary comments, moved to using macros instead of string literals where seemed to be fit.
This was done to make the code easier to read and understand, and make it easier to maintain in case of changes
--- .../kernel/syscalls/llistxattr/llistxattr01.c | 25 +++++++------- .../kernel/syscalls/llistxattr/llistxattr02.c | 38 ++++++++++------------ .../kernel/syscalls/llistxattr/llistxattr03.c | 14 +++----- 3 files changed, 36 insertions(+), 41 deletions(-)
testcases/kernel/syscalls/llistxattr/llistxattr01.c +13 -12
@@ -40,8 +40,10 @@#define SECURITY_KEY1 "security.ltptest1"#define SECURITY_KEY2 "security.ltptest2"#define VALUE "test" -#define VALUE_SIZE 4 -#define KEY_SIZE 17 +#define VALUE_SIZE (sizeof(VALUE) - 1) +#define KEY_SIZE (sizeof(SECURITY_KEY1) - 1) +#define TESTFILE "testfile" +#define SYMLINK "symlink"static int has_attribute (const char *list,int llen,const char *attr) {
@@ -56,22 +58,21 @@ static int has_attribute(const char *list, int llen, const char *attr)static void verify_llistxattr (void ) { -int size =64 ; -char buf[size]; +char buf[64 ]; -TEST (llistxattr ("symlink" , buf, size)); +TEST (llistxattr (SYMLINK , buf,sizeof (buf)));if (TEST_RETURN ==-1 ) { -tst_res (TFAIL |TERRNO ,"llistxattr() failed" ); +tst_res (TFAIL |TTERRNO ,"llistxattr() failed" );return ; } -if (has_attribute (buf, size,SECURITY_KEY1 )) { +if (has_attribute (buf,sizeof (buf),SECURITY_KEY1 )) {tst_res (TFAIL ,"get file attribute %s unexpectlly" ,SECURITY_KEY1 );return ; } -if (!has_attribute (buf, size,SECURITY_KEY2 )) { +if (!has_attribute (buf,sizeof (buf),SECURITY_KEY2 )) {tst_res (TFAIL ,"missing attribute %s" ,SECURITY_KEY2 );return ; }
@@ -81,13 +82,13 @@ static void verify_llistxattr(void)static void setup (void ) { -SAFE_TOUCH ("testfile" ,0644 ,NULL ); +SAFE_TOUCH (TESTFILE ,0644 ,NULL ); -SAFE_SYMLINK ("testfile" ,"symlink" ); +SAFE_SYMLINK (TESTFILE ,SYMLINK ); -SAFE_LSETXATTR ("testfile" ,SECURITY_KEY1 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); +SAFE_LSETXATTR (TESTFILE ,SECURITY_KEY1 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); -SAFE_LSETXATTR ("symlink" ,SECURITY_KEY2 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); +SAFE_LSETXATTR (SYMLINK ,SECURITY_KEY2 ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); }static struct tst_test test = {
testcases/kernel/syscalls/llistxattr/llistxattr02.c +18 -20
@@ -43,18 +43,17 @@#define SECURITY_KEY "security.ltptest"#define VALUE "test" -#define VALUE_SIZE 4 +#define VALUE_SIZE (sizeof(VALUE) - 1) +#define TESTFILE "testfile" +#define SYMLINK "symlink"static struct test_case {const char *path;size_t size;int exp_err; } tc[] = { -/* test1 */ - {"symlink" ,1 ,ERANGE }, -/* test2 */ + {SYMLINK ,1 ,ERANGE }, {"" ,20 ,ENOENT }, -/* test3 */ {(char *)-1 ,20 ,EFAULT } };
@@ -63,30 +62,29 @@ static void verify_llistxattr(unsigned int n)struct test_case *t = tc + n;char buf[t->size]; -TEST (llistxattr (t->path, buf, t->size)); -if (TEST_RETURN !=-1 ) { +TEST (llistxattr (t->path, buf,sizeof (buf))); +if (TEST_RETURN ==0 ) {tst_res (TFAIL ,"llistxattr() succeeded unexpectedly" ); +return ; + } + +if (TEST_ERRNO != t->exp_err) { +tst_res (TFAIL |TTERRNO ,"llistxattr() failed " +"unexpectedlly, expected %s" , +tst_strerrno (t->exp_err)); }else { -if (TEST_ERRNO != t->exp_err) { -tst_res (TFAIL |TTERRNO ,"llistxattr() failed " -"unexpectedlly, expected %s" , -tst_strerrno (t->exp_err)); - }else { -tst_res (TPASS |TTERRNO , -"llistxattr() failed as expected" ); - } +tst_res (TPASS |TTERRNO , +"llistxattr() failed as expected" ); } }static void setup (void ) { -int n; - -SAFE_TOUCH ("testfile" ,0644 ,NULL ); +SAFE_TOUCH (TESTFILE ,0644 ,NULL ); -SAFE_SYMLINK ("testfile" ,"symlink" ); +SAFE_SYMLINK (TESTFILE ,SYMLINK ); -SAFE_LSETXATTR ("symlink" ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); +SAFE_LSETXATTR (SYMLINK ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); }static struct tst_test test = {
testcases/kernel/syscalls/llistxattr/llistxattr03.c +5 -9
@@ -37,7 +37,7 @@#define SECURITY_KEY "security.ltptest"#define VALUE "test" -#define VALUE_SIZE 4 +#define VALUE_SIZE (sizeof(VALUE) - 1)static const char *filename[] = {"testfile1" ,"testfile2" };
@@ -46,11 +46,9 @@ static int check_suitable_buf(const char *name, long size)int n;char buf[size]; - n =llistxattr (name, buf, size); -if (n ==-1 ) -return 0 ; -else -return 1 ; + n =llistxattr (name, buf,sizeof (buf)); + +return n !=-1 ; }static void verify_llistxattr (unsigned int n)
@@ -59,7 +57,7 @@ static void verify_llistxattr(unsigned int n)TEST (llistxattr (name,NULL ,0 ));if (TEST_RETURN ==-1 ) { -tst_res (TFAIL |TERRNO ,"llistxattr() failed" ); +tst_res (TFAIL |TTERRNO ,"llistxattr() failed" );return ; }
@@ -71,8 +69,6 @@ static void verify_llistxattr(unsigned int n)static void setup (void ) { -int ret; -SAFE_TOUCH (filename[0 ],0644 ,NULL );SAFE_TOUCH (filename[1 ],0644 ,NULL );
Signature · 1 line
1.9.1
PATCH v3 3/5 llistxattr: improved code readability and
Hi!
testcases/kernel/syscalls/llistxattr/llistxattr03.c static void verify_llistxattr(unsigned int n) · line 60
Quoted 7 lines
static void
verify_llistxattr(unsigned int n)testcases/kernel/syscalls/llistxattr/llistxattr03.c +1
-1@@ -59,7 +57,7 @@ static void verify_llistxattr(unsigned int n)TEST (llistxattr (name,NULL ,0 ));if (TEST_RETURN ==-1 ) { -tst_res (TFAIL |TERRNO ,"llistxattr() failed" ); +tst_res (TFAIL |TTERRNO ,"llistxattr() failed" );
The TERRNO -> TTERRNO has been fixed by:
https://github.com/linux-test-project/ltp/commit/00b4cdeed78d43e3f9dca769ef444f68cbb681c1
Please rebase this patch.
testcases/kernel/syscalls/llistxattr/llistxattr03.c static void verify_llistxattr(unsigned int n) · line 75
Quoted 9 lines
testcases/kernel/syscalls/llistxattr/llistxattr03.c +0
-2return ; }@@ -71,8 +69,6 @@ static void verify_llistxattr(unsigned int n)static void setup (void ) { -int ret; -
This removal should have been part of the prevous patch, right?
testcases/kernel/syscalls/llistxattr/llistxattr03.c static void verify_llistxattr(unsigned int n) · line 74
Quoted 3 lines
testcases/kernel/syscalls/llistxattr/llistxattr03.c +0
-0SAFE_TOUCH (filename[0 ],0644 ,NULL );SAFE_TOUCH (filename[1 ],0644 ,NULL );
Otherwise it looks good.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v3 4/5 llistxattr: new testcase for long path name
In reply to Dejan JovicevicAdded a test case that checks if the path name, given by the first argument of the function, is too long. If that is the case, the function should return -1 and errno should be set to ENAMETOOLONG.
--- testcases/kernel/syscalls/llistxattr/llistxattr02.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
testcases/kernel/syscalls/llistxattr/llistxattr02.c +8 -1
@@ -22,11 +22,13 @@* to hold the result. * 2) llistxattr(2) fails if path is an empty string. * 3) llistxattr(2) fails when attempted to read from a invalid address. +* 4) llistxattr(2) fails if path is longer than allowed. * * Expected Result: * 1) llistxattr(2) should return -1 and set errno to ERANGE. * 2) llistxattr(2) should return -1 and set errno to ENOENT. * 3) llistxattr(2) should return -1 and set errno to EFAULT. +* 4) llistxattr(2) should return -1 and set errno to ENAMETOOLONG. */ #include "config.h"
@@ -47,6 +49,8 @@#define TESTFILE "testfile"#define SYMLINK "symlink" +char longpathname[PATH_MAX +2 ]; + static struct test_case { const char *path; size_t size;
@@ -54,7 +58,8 @@ static struct test_case { } tc[] = { {SYMLINK, 1, ERANGE}, {"", 20, ENOENT}, - {(char *)-1, 20, EFAULT} + {(char *)-1, 20, EFAULT}, + {longpathname, 20, ENAMETOOLONG} }; static void verify_llistxattr(unsigned int n)
@@ -85,6 +90,8 @@ static void setup(void)SAFE_SYMLINK (TESTFILE ,SYMLINK );SAFE_LSETXATTR (SYMLINK ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); + +memset (&longpathname,'a' ,sizeof (longpathname) -1 ); }static struct tst_test test = {
Signature · 1 line
1.9.1
PATCH v3 4/5 llistxattr: new testcase for long path name
Quoted 1 line
+char longpathname[PATH_MAX + 2];
Should be static char.
Quoted 14 lines
static struct
test_case{testcases/kernel/syscalls/llistxattr/llistxattr02.c +2
-1const char *path;size_t size;@@ -54,7 +58,8 @@ static struct test_case { } tc[] = { {SYMLINK, 1, ERANGE}, {"", 20, ENOENT}, - {(char *)-1, 20, EFAULT} + {(char *)-1, 20, EFAULT}, + {longpathname, 20, ENAMETOOLONG} }; static void verify_llistxattr(unsigned int n)
testcases/kernel/syscalls/llistxattr/llistxattr02.c static void setup(void) · line 94
Quoted 5 lines
testcases/kernel/syscalls/llistxattr/llistxattr02.c +2
-0@@ -85,6 +90,8 @@ static void setup(void)SAFE_SYMLINK (TESTFILE ,SYMLINK );SAFE_LSETXATTR (SYMLINK ,SECURITY_KEY ,VALUE ,VALUE_SIZE ,XATTR_CREATE ); + +memset (&longpathname,'a' ,sizeof (longpathname) -1 );
No need for the & here (in C array is a pointer to a first member and &array == array).
Otherwise it's fine.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH v3 5/5 flistxattr and listxattr: added tests
In reply to Dejan JovicevicTests for these two system calls were not present.
flistxattr(), listxattr() and llistxattr() are identical, the only difference is in the first argument:
- in listxattr() it refers to the file in the path.
- in llistxattr() in the case of a symbolic link, the list of names of extended attributes associated with the link itself is retrieved, not the file that it refers to.
- in flistxattr() the open file referred to by fd is interrogated in place of path.
Because of these similarities, implemented tests for flistxattr() and listxattr() are based on the existing tests for llistxattr(), with some adjustments to fit the appropriate system call.
--- runtest/syscalls | 8 ++ testcases/kernel/syscalls/.gitignore | 6 ++ testcases/kernel/syscalls/flistxattr/Makefile | 23 +++++ .../kernel/syscalls/flistxattr/flistxattr01.c | 102 ++++++++++++++++++++ .../kernel/syscalls/flistxattr/flistxattr02.c | 104 ++++++++++++++++++++ .../kernel/syscalls/flistxattr/flistxattr03.c | 97 +++++++++++++++++++ testcases/kernel/syscalls/listxattr/Makefile | 23 +++++ testcases/kernel/syscalls/listxattr/listxattr01.c | 94 ++++++++++++++++++ testcases/kernel/syscalls/listxattr/listxattr02.c | 105 +++++++++++++++++++++ testcases/kernel/syscalls/listxattr/listxattr03.c | 89 +++++++++++++++++ 10 files changed, 651 insertions(+) create mode 100644 testcases/kernel/syscalls/flistxattr/Makefile create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr01.c create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr02.c create mode 100644 testcases/kernel/syscalls/flistxattr/flistxattr03.c create mode 100644 testcases/kernel/syscalls/listxattr/Makefile create mode 100644 testcases/kernel/syscalls/listxattr/listxattr01.c create mode 100644 testcases/kernel/syscalls/listxattr/listxattr02.c create mode 100644 testcases/kernel/syscalls/listxattr/listxattr03.c
runtest/syscalls +8 -0
@@ -272,6 +272,10 @@ fcntl34_64 fcntl34_64 fdatasync01 fdatasync01 fdatasync02 fdatasync02 +flistxattr01 flistxattr01 +flistxattr02 flistxattr02 +flistxattr03 flistxattr03 + flock01 flock01 flock02 flock02 flock03 flock03
@@ -523,6 +527,10 @@ linkat02 linkat02 listen01 listen01 +listxattr01 listxattr01 +listxattr02 listxattr02 +listxattr03 listxattr03 + llistxattr01 llistxattr01 llistxattr02 llistxattr02 llistxattr03 llistxattr03
testcases/kernel/syscalls/.gitignore +6 -0
@@ -233,6 +233,9 @@ /fcntl/fcntl34_64 /fdatasync/fdatasync01 /fdatasync/fdatasync02 +/flistxattr/flistxattr01 +/flistxattr/flistxattr02 +/flistxattr/flistxattr03 /flock/flock01 /flock/flock02 /flock/flock03
@@ -482,6 +485,9 @@ /linkat/linkat01 /linkat/linkat02 /listen/listen01 +/listxattr/listxattr01 +/listxattr/listxattr02 +/listxattr/listxattr03 /llistxattr/llistxattr01 /llistxattr/llistxattr02 /llistxattr/llistxattr03
testcases/kernel/syscalls/flistxattr/Makefile new file +23 -0
@@ -0,0 +1,23 @@ +# +# Copyright (c) 2016 RT-RK Institute for Computer Based Systems +# Author: Dejan Jovicevic <[email protected]> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +# the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. +# + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/flistxattr/flistxattr01.c new file +102 -0
102 lines not on this page · raw message
testcases/kernel/syscalls/flistxattr/flistxattr02.c new file +104 -0
104 lines not on this page · raw message
testcases/kernel/syscalls/flistxattr/flistxattr03.c new file +97 -0
97 lines not on this page · raw message
testcases/kernel/syscalls/listxattr/Makefile new file +23 -0
@@ -0,0 +1,23 @@ +# +# Copyright (c) 2016 RT-RK Institute for Computer Based Systems +# Author: Dejan Jovicevic <[email protected]> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +# the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. +# + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/listxattr/listxattr01.c new file +94 -0
94 lines not on this page · raw message
testcases/kernel/syscalls/listxattr/listxattr02.c new file +105 -0
105 lines not on this page · raw message
testcases/kernel/syscalls/listxattr/listxattr03.c new file +89 -0
89 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v3 5/5 flistxattr and listxattr: added tests
Hi!
Quoted 29 lines
testcases/kernel/syscalls/flistxattr/Makefile new file +23
-0+# +# Copyright (c) 2016 RT-RK Institute for Computer Based Systems +# Author: Dejan Jovicevic <[email protected]> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +# the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. +# + +top_srcdir ?= ../../../.. + +include $(top_srcdir)/include/mk/testcases.mk + +include $(top_srcdir)/include/mk/generic_leaf_target.mktestcases/kernel/syscalls/flistxattr/flistxattr01.c new file +0
-0
testcases/kernel/syscalls/flistxattr/flistxattr01.c line 7
Quoted 7 lines
testcases/kernel/syscalls/flistxattr/flistxattr01.c new file +7
-0@@ -0,0 +1,102 @@ +/* +* Copyright (c) 2016 RT-RK Institute for Computer Based Systems +* Author: Dejan Jovicevic <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License as +* published by the Free Software Foundation.
FYI the GPLv2+ (any later version) is slightly prefered (that is the one in the Makefile above).
Signature · 2 lines
Cyril Hrubis [email protected]