Browse Source

Fix run-read_all and fix hang if they should fail.

Rusty Russell 17 years ago
parent
commit
36b64ac075

+ 5 - 1
ccan/read_write_all/test/run-read_all.c

@@ -39,6 +39,8 @@ int main(int argc, char *argv[])
 	child = fork();
 	child = fork();
 
 
 	if (!child) {
 	if (!child) {
+		close(p2c[1]);
+		close(c2p[0]);
 		/* Child.  Make sure parent ready, then write in two parts. */
 		/* Child.  Make sure parent ready, then write in two parts. */
 		if (read(p2c[0], &c, 1) != 1)
 		if (read(p2c[0], &c, 1) != 1)
 			exit(1);
 			exit(1);
@@ -50,13 +52,15 @@ int main(int argc, char *argv[])
 		/* Make sure they get signal. */
 		/* Make sure they get signal. */
 		if (read(p2c[0], &c, 1) != 1)
 		if (read(p2c[0], &c, 1) != 1)
 			exit(4);
 			exit(4);
-		if (write(c2p[1], buffer, PIPE_BUF) != PIPE_BUF)
+		if (write(c2p[1], buffer, BUFSZ) != BUFSZ)
 			exit(5);
 			exit(5);
 		exit(0);
 		exit(0);
 	}
 	}
 	if (child == -1)
 	if (child == -1)
 		err(1, "forking");
 		err(1, "forking");
 
 
+	close(p2c[0]);
+	close(c2p[1]);
 	signal(SIGUSR1, got_signal);
 	signal(SIGUSR1, got_signal);
 	ok1(write(p2c[1], &c, 1) == 1);
 	ok1(write(p2c[1], &c, 1) == 1);
 	ok1(read_all(c2p[0], buffer, sizeof(buffer)));
 	ok1(read_all(c2p[0], buffer, sizeof(buffer)));

+ 2 - 0
ccan/read_write_all/test/run-write_all.c

@@ -37,6 +37,7 @@ int main(int argc, char *argv[])
 	child = fork();
 	child = fork();
 
 
 	if (!child) {
 	if (!child) {
+		close(p2c[1]);
 		/* Make sure they started writing. */
 		/* Make sure they started writing. */
 		if (read(p2c[0], buffer, 1) != 1)
 		if (read(p2c[0], buffer, 1) != 1)
 			exit(1);
 			exit(1);
@@ -54,6 +55,7 @@ int main(int argc, char *argv[])
 	if (child == -1)
 	if (child == -1)
 		err(1, "forking");
 		err(1, "forking");
 
 
+	close(p2c[0]);
 	memset(buffer, 0xff, sizeof(buffer));
 	memset(buffer, 0xff, sizeof(buffer));
 	signal(SIGUSR1, got_signal);
 	signal(SIGUSR1, got_signal);
 	ok1(write_all(p2c[1], buffer, sizeof(buffer)));
 	ok1(write_all(p2c[1], buffer, sizeof(buffer)));