Commit f1015e4c authored by Andrew Vagin's avatar Andrew Vagin Committed by Pavel Emelyanov

zdtm/tty*: wait when processes complete a preparation stage

Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent a8423135
...@@ -23,11 +23,14 @@ static void sighup_handler(int signo) ...@@ -23,11 +23,14 @@ static void sighup_handler(int signo)
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
int fdm, fds, status; int fdm, fds, status;
task_waiter_t t;
char *slavename; char *slavename;
pid_t pid; pid_t pid;
test_init(argc, argv); test_init(argc, argv);
task_waiter_init(&t);
fdm = open("/dev/ptmx", O_RDWR); fdm = open("/dev/ptmx", O_RDWR);
if (fdm == -1) { if (fdm == -1) {
pr_perror("Can't open a master pseudoterminal"); pr_perror("Can't open a master pseudoterminal");
...@@ -64,12 +67,15 @@ int main(int argc, char ** argv) ...@@ -64,12 +67,15 @@ int main(int argc, char ** argv)
} }
close(fds); close(fds);
task_waiter_complete_current(&t);
test_waitsig(); test_waitsig();
if (sighup) if (sighup)
return 0; return 0;
return 1; return 1;
} }
task_waiter_wait4(&t, pid);
test_daemon(); test_daemon();
......
...@@ -15,11 +15,13 @@ const char *test_author = "Andrey Vagin <avagin@openvz.org>"; ...@@ -15,11 +15,13 @@ const char *test_author = "Andrey Vagin <avagin@openvz.org>";
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
int fdm, fds, exit_code = 1, status; int fdm, fds, exit_code = 1, status;
task_waiter_t t;
char *slavename; char *slavename;
pid_t sid_b, sid_a, pid; pid_t sid_b, sid_a, pid;
int pfd[2]; int pfd[2];
test_init(argc, argv); test_init(argc, argv);
task_waiter_init(&t);
if (pipe(pfd) == -1) { if (pipe(pfd) == -1) {
pr_perror("pipe"); pr_perror("pipe");
...@@ -62,6 +64,7 @@ int main(int argc, char ** argv) ...@@ -62,6 +64,7 @@ int main(int argc, char ** argv)
close(pfd[1]); close(pfd[1]);
task_waiter_complete(&t, 1);
test_waitsig(); test_waitsig();
exit(0); exit(0);
} }
...@@ -69,6 +72,9 @@ int main(int argc, char ** argv) ...@@ -69,6 +72,9 @@ int main(int argc, char ** argv)
close(fds); close(fds);
close(pfd[1]); close(pfd[1]);
task_waiter_wait4(&t, 1);
task_waiter_complete(&t, 0);
test_waitsig(); test_waitsig();
kill(pid, SIGTERM); kill(pid, SIGTERM);
...@@ -88,6 +94,7 @@ int main(int argc, char ** argv) ...@@ -88,6 +94,7 @@ int main(int argc, char ** argv)
goto out; goto out;
} }
task_waiter_wait4(&t, 0);
test_daemon(); test_daemon();
test_waitsig(); test_waitsig();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment