/* FIXME: Do something tricky to ensure we really do loop in write_all. */
-#include "read_write_all/read_write_all.h"
-#include "read_write_all/read_write_all.c"
-#include "tap/tap.h"
+#include <ccan/read_write_all/read_write_all.h>
+#include <ccan/read_write_all/read_write_all.c>
+#include <ccan/tap/tap.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
child = fork();
if (!child) {
+ close(p2c[1]);
/* Make sure they started writing. */
if (read(p2c[0], buffer, 1) != 1)
exit(1);
if (!read_all(p2c[0], buffer+1, sizeof(buffer)-1))
exit(3);
if (memchr(buffer, 0, sizeof(buffer))) {
- fprintf(stderr, "buffer has 0 at offset %i\n",
+ fprintf(stderr, "buffer has 0 at offset %ti\n",
memchr(buffer, 0, sizeof(buffer)) - (void *)buffer);
exit(4);
}
if (child == -1)
err(1, "forking");
+ close(p2c[0]);
memset(buffer, 0xff, sizeof(buffer));
signal(SIGUSR1, got_signal);
ok1(write_all(p2c[1], buffer, sizeof(buffer)));