[CRIU] [PATCH] test/pipes: don't use the shell_job option
Andrey Wagin
avagin at gmail.com
Thu May 14 14:26:56 PDT 2015
2015-05-15 0:08 GMT+03:00 Pavel Emelyanov <xemul at parallels.com>:
> On 05/14/2015 11:56 PM, Andrew Vagin wrote:
>> It's required to execute the test in Jenkins.
>
> This patch contains more than just -j removal. What is it?
We need to stop using a current terminal. For that we need to
* create a new session
* redirect stdout and stderr in a file.
* close stdin
>
>> Signed-off-by: Andrew Vagin <avagin at openvz.org>
>> ---
>> test/pipes/pipe.c | 22 +++++++++++++++-------
>> 1 file changed, 15 insertions(+), 7 deletions(-)
>>
>> diff --git a/test/pipes/pipe.c b/test/pipes/pipe.c
>> index 0b9a5dd..cb34703 100644
>> --- a/test/pipes/pipe.c
>> +++ b/test/pipes/pipe.c
>> @@ -116,7 +116,7 @@ char inh_file_arg[64];
>> char *dump_argv[] = {
>> "criu", "dump",
>> "-D", IMG_DIR, "-o", DUMP_LOG_FILE,
>> - "-v4", "-j",
>> + "-v4",
>> "-t", pid_number,
>> NULL
>> };
>> @@ -125,7 +125,7 @@ char *restore_argv[] = {
>> "criu", "restore", "-d",
>> "-D", IMG_DIR, "-o", RESTORE_LOG_FILE,
>> "--pidfile", RESTORE_PID_FILE,
>> - "-v4", "-j",
>> + "-v4",
>> inh_pipe_opt, inh_pipe_arg,
>> inh_file_opt, inh_file_arg,
>> NULL
>> @@ -162,6 +162,7 @@ void unlink_safe(char *pathname);
>> void execv_safe(char *path, char *argv[], int ls);
>> pid_t waitpid_safe(pid_t pid, int *status, int options, int id);
>> void prctl_safe(int option, ulong arg2, ulong arg3, ulong arg4, ulong arg5);
>> +int dup2_safe(int oldfd, int newfd);
>>
>> void usage(char *cmd)
>> {
>> @@ -227,10 +228,17 @@ int main(int argc, char *argv[])
>> /* child */
>> int dupfd = -1;
>> int openfd = -1;
>> + int logfd;
>>
>> child_pid = getpid();
>>
>> close_safe(pipefd[READ_FD]);
>> + setsid();
>> + logfd = open_safe(OLD_LOG_FILE, O_WRONLY | O_APPEND | O_CREAT);
>> + dup2_safe(logfd, 1);
>> + dup2_safe(logfd, 2);
>> + close(logfd);
>> + close(0);
>>
>> /* open a regular file and move it to CLASH_FD */
>> if (cflag)
>> @@ -457,12 +465,12 @@ void restore_child(int *new_pipefd, char *old_pipe_name)
>> snprintf(inh_file_arg, sizeof inh_file_arg,
>> "fd[%d]:%s", filefd, OLD_LOG_FILE + 1);
>>
>> - restore_argv[13] = inh_file_opt;
>> + restore_argv[12] = inh_file_opt;
>> } else
>> - restore_argv[13] = NULL;
>> - restore_argv[11] = inh_pipe_opt;
>> + restore_argv[12] = NULL;
>> + restore_argv[10] = inh_pipe_opt;
>> } else
>> - restore_argv[11] = NULL;
>> + restore_argv[10] = NULL;
>>
>> snprintf(buf, sizeof buf, "%s/%s", IMG_DIR, RESTORE_PID_FILE);
>> unlink_safe(buf);
>> @@ -572,7 +580,7 @@ int open_safe(char *pathname, int flags)
>> {
>> int fd;
>>
>> - if ((fd = open(pathname, flags)) == -1)
>> + if ((fd = open(pathname, flags, 0777)) == -1)
>> die("open: pathname=%s", pathname);
>> return fd;
>> }
>>
>
More information about the CRIU
mailing list