Message ID | 20240222153217.1046-1-andrea.cervesato@suse.de |
---|---|
State | Accepted |
Headers | show |
Series | [v3] Add more testcases in mkdir03 | expand |
Hi! > +#include <paths.h> > +#include <stdlib.h> > #include <errno.h> > #include <sys/types.h> > #include <sys/stat.h> > @@ -19,6 +21,10 @@ > #include "tst_test.h" > > #define TST_EEXIST "tst_eexist" > +#define TST_PIPE "tst_pipe" > +#define TST_FOLDER "tst_folder" > +#define TST_SYMLINK "tst_symlink" > +#define TST_NULLDEV _PATH_DEVNULL I would just hardcode the "/dev/null" here, this has potential to explode on alternative libc implementations, possibly Android. Hmm looking around the file seems to exists on Android and Musl however _PATH_DEVNULL is just "/dev/null" everywhere anyways. Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
> Hi! > > +#include <paths.h> > > +#include <stdlib.h> > > #include <errno.h> > > #include <sys/types.h> > > #include <sys/stat.h> > > @@ -19,6 +21,10 @@ > > #include "tst_test.h" > > #define TST_EEXIST "tst_eexist" > > +#define TST_PIPE "tst_pipe" > > +#define TST_FOLDER "tst_folder" > > +#define TST_SYMLINK "tst_symlink" > > +#define TST_NULLDEV _PATH_DEVNULL > I would just hardcode the "/dev/null" here, this has potential to > explode on alternative libc implementations, possibly Android. > Hmm looking around the file seems to exists on Android and Musl however > _PATH_DEVNULL is just "/dev/null" everywhere anyways. Yeah, IMHO not that readable as hardcoded value, but it's safe to use nowadays. Anyway, merged. Kind regards, Petr
diff --git a/runtest/syscalls b/runtest/syscalls index ef90076e4..e913eeecd 100644 --- a/runtest/syscalls +++ b/runtest/syscalls @@ -757,7 +757,6 @@ mkdir02 mkdir02 mkdir03 mkdir03 mkdir04 mkdir04 mkdir05 mkdir05 -mkdir05A symlink01 -T mkdir05 mkdir09 mkdir09 #mkdirat test cases diff --git a/testcases/kernel/syscalls/mkdir/mkdir03.c b/testcases/kernel/syscalls/mkdir/mkdir03.c index d5141bb64..736c91ae2 100644 --- a/testcases/kernel/syscalls/mkdir/mkdir03.c +++ b/testcases/kernel/syscalls/mkdir/mkdir03.c @@ -9,6 +9,8 @@ * EFAULT, ENAMETOOLONG, EEXIST, ENOENT, ENOTDIR, ELOOP and EROFS */ +#include <paths.h> +#include <stdlib.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> @@ -19,6 +21,10 @@ #include "tst_test.h" #define TST_EEXIST "tst_eexist" +#define TST_PIPE "tst_pipe" +#define TST_FOLDER "tst_folder" +#define TST_SYMLINK "tst_symlink" +#define TST_NULLDEV _PATH_DEVNULL #define TST_ENOENT "tst_enoent/tst" #define TST_ENOTDIR_FILE "tst_enotdir" #define TST_ENOTDIR_DIR "tst_enotdir/tst" @@ -41,6 +47,10 @@ static struct tcase { {NULL, EFAULT}, {long_dir, ENAMETOOLONG}, {TST_EEXIST, EEXIST}, + {TST_FOLDER, EEXIST}, + {TST_PIPE, EEXIST}, + {TST_SYMLINK, EEXIST}, + {TST_NULLDEV, EEXIST}, {TST_ENOENT, ENOENT}, {TST_ENOTDIR_DIR, ENOTDIR}, {loop_dir, ELOOP}, @@ -70,7 +80,13 @@ static void verify_mkdir(unsigned int n) static void setup(void) { unsigned int i; + char *tmpdir = tst_get_tmpdir(); + SAFE_SYMLINK(tmpdir, TST_SYMLINK); + free(tmpdir); + + SAFE_MKFIFO(TST_PIPE, 0777); + SAFE_MKDIR(TST_FOLDER, 0777); SAFE_TOUCH(TST_EEXIST, MODE, NULL); SAFE_TOUCH(TST_ENOTDIR_FILE, MODE, NULL);