* [LTP] [PATCH v3] Add more testcases in mkdir03
@ 2024-02-22 15:32 Andrea Cervesato
2024-02-23 11:08 ` Cyril Hrubis
0 siblings, 1 reply; 3+ messages in thread
From: Andrea Cervesato @ 2024-02-22 15:32 UTC (permalink / raw)
To: ltp
From: Andrea Cervesato <andrea.cervesato@suse.com>
We add more test cases in mkdir03 in order to check that mkdir()
can't overwrite certain types of files, such as simlinks, directories,
pipes, devices, etc.
These test cases come from symlink01 refactoring.
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
EEXIST test on /dev/null
runtest/syscalls | 1 -
testcases/kernel/syscalls/mkdir/mkdir03.c | 16 ++++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
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);
--
2.35.3
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [LTP] [PATCH v3] Add more testcases in mkdir03
2024-02-22 15:32 [LTP] [PATCH v3] Add more testcases in mkdir03 Andrea Cervesato
@ 2024-02-23 11:08 ` Cyril Hrubis
2024-03-07 23:50 ` Petr Vorel
0 siblings, 1 reply; 3+ messages in thread
From: Cyril Hrubis @ 2024-02-23 11:08 UTC (permalink / raw)
To: Andrea Cervesato; +Cc: ltp
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>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH v3] Add more testcases in mkdir03
2024-02-23 11:08 ` Cyril Hrubis
@ 2024-03-07 23:50 ` Petr Vorel
0 siblings, 0 replies; 3+ messages in thread
From: Petr Vorel @ 2024-03-07 23:50 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
> 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
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-03-08 1:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-22 15:32 [LTP] [PATCH v3] Add more testcases in mkdir03 Andrea Cervesato
2024-02-23 11:08 ` Cyril Hrubis
2024-03-07 23:50 ` Petr Vorel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox