X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fdaemonize%2Ftest%2Frun.c;h=9bb966da240b722e33dd29f9ea4cfc399f159b5d;hp=9802c44237c5c6da482adfc4bde692933229a61a;hb=a8b30ad4dcea31c68ca809d2a6e6e4c7c6c30398;hpb=e22e4bd1bc10ec2dbae8322cb7f63e0a45db1404 diff --git a/ccan/daemonize/test/run.c b/ccan/daemonize/test/run.c index 9802c442..9bb966da 100644 --- a/ccan/daemonize/test/run.c +++ b/ccan/daemonize/test/run.c @@ -5,6 +5,7 @@ #include #include #include +#include struct child_data { pid_t pid; @@ -34,20 +35,28 @@ int main(int argc, char *argv[]) char buffer[2]; pid = getpid(); daemonize(); + /* Keep valgrind happy about uninitialized bytes. */ + memset(&daemonized, 0, sizeof(daemonized)); daemonized.pid = getpid(); daemonized.in_root_dir = (getcwd(buffer, 2) != NULL); daemonized.read_from_stdin = read(STDIN_FILENO, buffer, 1) == -1 ? errno : 0; daemonized.write_to_stdout = write(STDOUT_FILENO, buffer, 1) == -1 ? errno : 0; - daemonized.write_to_stderr - = write(STDERR_FILENO, buffer, 1) == -1 ? errno : 0; + if (write(STDERR_FILENO, buffer, 1) != 1) { + daemonized.write_to_stderr = errno; + if (daemonized.write_to_stderr == 0) + daemonized.write_to_stderr = -1; + } else + daemonized.write_to_stderr = 0; /* Make sure parent exits. */ while (getppid() == pid) sleep(1); daemonized.ppid = getppid(); - write(fds[1], &daemonized, sizeof(daemonized)); + if (write(fds[1], &daemonized, sizeof(daemonized)) + != sizeof(daemonized)) + exit(1); exit(0); } @@ -59,7 +68,7 @@ int main(int argc, char *argv[]) ok1(daemonized.in_root_dir); ok1(daemonized.read_from_stdin == EBADF); ok1(daemonized.write_to_stdout == EBADF); - ok1(daemonized.write_to_stderr == EBADF); + ok1(daemonized.write_to_stderr == 0); return exit_status(); }