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

zdtm/fifo_wronly: wait when a child opens a file descriptor

A static test should not change its state during C/R
Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 64744030
...@@ -18,6 +18,7 @@ TEST_OPTION(filename, string, "file name", 1); ...@@ -18,6 +18,7 @@ TEST_OPTION(filename, string, "file name", 1);
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
task_waiter_t t;
int fd, fd1; int fd, fd1;
struct stat st; struct stat st;
mode_t mode = S_IFIFO | 0600; mode_t mode = S_IFIFO | 0600;
...@@ -26,6 +27,8 @@ int main(int argc, char **argv) ...@@ -26,6 +27,8 @@ int main(int argc, char **argv)
test_init(argc, argv); test_init(argc, argv);
task_waiter_init(&t);
if (mknod(filename, mode, 0)) { if (mknod(filename, mode, 0)) {
pr_perror("can't make fifo \"%s\"", filename); pr_perror("can't make fifo \"%s\"", filename);
exit(1); exit(1);
...@@ -46,6 +49,7 @@ int main(int argc, char **argv) ...@@ -46,6 +49,7 @@ int main(int argc, char **argv)
chret = errno; chret = errno;
return chret; return chret;
} }
task_waiter_complete(&t, 1);
res = read(fd1, rbuf, 7); res = read(fd1, rbuf, 7);
if (res < 0) { if (res < 0) {
pr_perror("read error %s", filename); pr_perror("read error %s", filename);
...@@ -71,6 +75,7 @@ int main(int argc, char **argv) ...@@ -71,6 +75,7 @@ int main(int argc, char **argv)
wait(NULL); wait(NULL);
return 1; return 1;
} }
task_waiter_wait4(&t, 1);
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