Use read_all() to read messages from spawn_background

Using read() is an invitation to get some of the data you want, not all.

Possible fix for bug 2462
This commit is contained in:
Nick Mathewson
2011-05-04 23:32:18 -04:00
parent 08efa70c41
commit d8cb4f9f0c
+2 -2
View File
@@ -1367,7 +1367,7 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
pid = retval;
/* Check stdout */
pos = read(stdout_pipe, stdout_buf, sizeof(stdout_buf) - 1);
pos = read_all(stdout_pipe, stdout_buf, sizeof(stdout_buf) - 1, 0);
stdout_buf[pos] = '\0';
tt_int_op(pos, ==, strlen(expected_out));
tt_str_op(stdout_buf, ==, expected_out);
@@ -1381,7 +1381,7 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
tt_assert(!WIFSTOPPED(stat_loc));
/* Check stderr */
pos = read(stderr_pipe, stderr_buf, sizeof(stderr_buf) - 1);
pos = read_all(stderr_pipe, stderr_buf, sizeof(stderr_buf) - 1, 0);
stderr_buf[pos] = '\0';
tt_int_op(pos, ==, strlen(expected_err));
tt_str_op(stderr_buf, ==, expected_err);