[CRIU] [PATCH 4/5] fown: test -- Update file_own_dead to test O_PATH case
Andrey Vagin
avagin at gmail.com
Tue Dec 11 09:21:13 MSK 2018
On Fri, Dec 07, 2018 at 03:29:47PM +0300, Cyrill Gorcunov wrote:
> Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
> ---
> test/zdtm/static/Makefile | 2 +-
> test/zdtm/static/file_fown_dead.c | 19 +++++++++++++++++++
> 2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/test/zdtm/static/Makefile b/test/zdtm/static/Makefile
> index ab20c61b3574..2d7bd9c7bc5b 100644
> --- a/test/zdtm/static/Makefile
> +++ b/test/zdtm/static/Makefile
> @@ -119,7 +119,6 @@ TST_NOFILE := \
> groups \
> pdeath_sig \
> file_fown \
> - file_fown_dead \
> proc-self \
> eventfs00 \
> epoll \
> @@ -279,6 +278,7 @@ TST_FILE = \
> netns-nf \
> maps_file_prot \
> socket_close_data01 \
> + file_fown_dead \
>
> TST_DIR = \
> cwd00 \
> diff --git a/test/zdtm/static/file_fown_dead.c b/test/zdtm/static/file_fown_dead.c
> index 3a99bc729f51..92c6d0ad9dc7 100644
> --- a/test/zdtm/static/file_fown_dead.c
> +++ b/test/zdtm/static/file_fown_dead.c
> @@ -22,6 +22,9 @@
> const char *test_doc = "Check for restore with dead file owners";
> const char *test_author = "Cyrill Gorcunov <gorcunov at openvz.org>";
>
> +char *filename;
> +TEST_OPTION(filename, string, "file name", 1);
> +
> struct params {
> int sigio;
> int pipe_flags[2];
> @@ -81,9 +84,23 @@ int main(int argc, char *argv[])
> uid_t ruid, euid, suid;
> int status, pipes[2];
> pid_t pid;
> + int fd;
>
> test_init(argc, argv);
>
> + fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0644);
> + if (fd < 0) {
> + pr_perror("Can't create %s", filename);
> + exit(1);
> + }
> + close(fd);
> +
> + fd = open(filename, O_PATH, 0644);
Could you create another test for O_PATH?
> + if (fd < 0) {
> + pr_perror("Can't open %s as O_PATH", filename);
> + exit(1);
> + }
> +
> shared = (void *)mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
> if ((void *)shared == MAP_FAILED) {
> fail("mmap failed");
> @@ -187,6 +204,8 @@ int main(int argc, char *argv[])
> exit(1);
> }
>
> + close(fd);
> +
> pass();
> return 0;
> }
> --
> 2.17.2
>
More information about the CRIU
mailing list