]> git.ozlabs.org Git - ccan/blobdiff - ccan/daemonize/test/run.c
daemonize / daemon_with_notify: ignore Ubuntu 13.10 brain death.
[ccan] / ccan / daemonize / test / run.c
index c86f214bcae6e3fcfb2901e436971471e21e2479..73f021118a8c77505136fe25e0b6a3eb9b2eeed8 100644 (file)
@@ -20,7 +20,7 @@ int main(int argc, char *argv[])
        struct child_data daemonized;
        pid_t pid;
 
-       plan_tests(6);
+       plan_tests(5);
 
        if (pipe(fds) != 0)
                err(1, "Failed pipe");
@@ -43,8 +43,12 @@ int main(int argc, char *argv[])
                        = 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)
@@ -60,11 +64,13 @@ int main(int argc, char *argv[])
                err(1, "Failed read");
 
        ok1(daemonized.pid != pid);
+#if 0  /* Believe it or not, this fails under Ubuntu 13.10 (Upstart) */
        ok1(daemonized.ppid == 1);
+#endif
        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();
 }