[CRIU] [PATCH] test: combine remap_dead_pid{,_root} tests
Tycho Andersen
tycho.andersen at canonical.com
Tue Nov 15 04:43:20 PST 2016
On Mon, Nov 14, 2016 at 09:36:44PM +0300, Dmitry Safonov wrote:
> 1. Dropped check for (fd < 0) - there is check after open() in the
> test, just two lines upper or so.
> 2. Combined two test to share common code: they differ only by proc
> path to open in a dead process.
>
> Cc: Tycho Andersen <tycho.andersen at canonical.com>
Acked-by: Tycho Andersen <tycho.andersen at canonical.com>
Thanks!
> Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
> ---
> test/zdtm/static/Makefile | 1 +
> test/zdtm/static/remap_dead_pid.c | 13 +++---
> test/zdtm/static/remap_dead_pid_root.c | 73 +---------------------------------
> 3 files changed, 9 insertions(+), 78 deletions(-)
> mode change 100644 => 120000 test/zdtm/static/remap_dead_pid_root.c
>
> diff --git a/test/zdtm/static/Makefile b/test/zdtm/static/Makefile
> index f8a922b10025..6d8cd755fe22 100644
> --- a/test/zdtm/static/Makefile
> +++ b/test/zdtm/static/Makefile
> @@ -390,6 +390,7 @@ shm: override CFLAGS += -DNEW_IPC_NS
> msgque: override CFLAGS += -DNEW_IPC_NS
> sem: override CFLAGS += -DNEW_IPC_NS
> posix_timers: override LDLIBS += -lrt -pthread
> +remap_dead_pid_root: override CFLAGS += -DREMAP_PID_ROOT
> socket-tcp6: override CFLAGS += -D ZDTM_IPV6
> socket-tcpbuf6: override CFLAGS += -D ZDTM_IPV6
> socket-tcpbuf-local: override CFLAGS += -D ZDTM_TCP_LOCAL
> diff --git a/test/zdtm/static/remap_dead_pid.c b/test/zdtm/static/remap_dead_pid.c
> index 00fe3fd16359..b46fd2b0b741 100644
> --- a/test/zdtm/static/remap_dead_pid.c
> +++ b/test/zdtm/static/remap_dead_pid.c
> @@ -14,6 +14,12 @@
> #define CLONE_NEWNS 0x00020000
> #endif
>
> +#ifdef REMAP_PID_ROOT
> +const char *proc_path = "/proc/%d";
> +#else
> +const char *proc_path = "/proc/%d/mountinfo";
> +#endif
> +
> const char *test_doc = "Check that dead pid's /proc entries are remapped correctly";
> const char *test_author = "Tycho Andersen <tycho.andersen at canonical.com>";
>
> @@ -40,7 +46,7 @@ int main(int argc, char **argv)
> char path[PATH_MAX];
> pid_t result;
>
> - sprintf(path, "/proc/%d/mountinfo", pid);
> + sprintf(path, proc_path, pid);
> fd = open(path, O_RDONLY);
> if (fd < 0) {
> fail("failed to open fd");
> @@ -55,11 +61,6 @@ int main(int argc, char **argv)
> return -1;
> }
>
> - if (fd < 0) {
> - fail("failed opening %s", path);
> - return -1;
> - }
> -
> test_daemon();
> test_waitsig();
>
> diff --git a/test/zdtm/static/remap_dead_pid_root.c b/test/zdtm/static/remap_dead_pid_root.c
> deleted file mode 100644
> index 2a3141216b0f..000000000000
> --- a/test/zdtm/static/remap_dead_pid_root.c
> +++ /dev/null
> @@ -1,72 +0,0 @@
> -#define _GNU_SOURCE
> -#include <string.h>
> -#include <fcntl.h>
> -#include <unistd.h>
> -#include <signal.h>
> -#include <stdio.h>
> -#include <limits.h>
> -#include <sys/types.h>
> -#include <sys/wait.h>
> -
> -#include "zdtmtst.h"
> -
> -#ifndef CLONE_NEWNS
> -#define CLONE_NEWNS 0x00020000
> -#endif
> -
> -const char *test_doc = "Check that dead pid's /proc entries are remapped correctly";
> -const char *test_author = "Tycho Andersen <tycho.andersen at canonical.com>";
> -
> -int main(int argc, char **argv)
> -{
> - pid_t pid;
> -
> - test_init(argc, argv);
> -
> - pid = fork();
> - if (pid < 0) {
> - fail("fork() failed");
> - return -1;
> - }
> -
> - if (pid == 0) {
> - test_msg("child is %d\n", pid);
> - /* Child process just sleeps until it is killed. All we need
> - * here is a process to open the mountinfo of. */
> - while(1)
> - sleep(10);
> - } else {
> - int fd, ret;
> - char path[PATH_MAX];
> - pid_t result;
> -
> - sprintf(path, "/proc/%d", pid);
> - fd = open(path, O_RDONLY);
> - if (fd < 0) {
> - fail("failed to open fd");
> - return -1;
> - }
> -
> - /* no matter what, we should kill the child */
> - kill(pid, SIGKILL);
> - result = waitpid(pid, NULL, 0);
> - if (result < 0) {
> - fail("failed waitpid()");
> - return -1;
> - }
> -
> - test_daemon();
> - test_waitsig();
> -
> - ret = fcntl(fd, F_GETFD);
> - close(fd);
> -
> - if (ret) {
> - fail("bad fd after restore");
> - return -1;
> - }
> - }
> -
> - pass();
> - return 0;
> -}
> diff --git a/test/zdtm/static/remap_dead_pid_root.c b/test/zdtm/static/remap_dead_pid_root.c
> new file mode 120000
> index 000000000000..3739fc74bea6
> --- /dev/null
> +++ b/test/zdtm/static/remap_dead_pid_root.c
> @@ -0,0 +1 @@
> +remap_dead_pid.c
> \ No newline at end of file
> --
> 2.10.2
>
More information about the CRIU
mailing list