selftests: Use separate stdout and stderr buffers in nettest

When a single instance of nettest is doing both client and
server modes, stdout and stderr messages can get interlaced
and become unreadable. Allocate a new set of buffers for the
child process handling server mode.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
David Ahern 2021-01-13 20:09:42 -07:00 committed by Jakub Kicinski
parent 6469403c97
commit f222c37cf7

View file

@ -1707,9 +1707,28 @@ static char *random_msg(int len)
static int ipc_child(int fd, struct sock_args *args)
{
char *outbuf, *errbuf;
int rc = 1;
outbuf = malloc(4096);
errbuf = malloc(4096);
if (!outbuf || !errbuf) {
fprintf(stderr, "server: Failed to allocate buffers for stdout and stderr\n");
goto out;
}
setbuffer(stdout, outbuf, 4096);
setbuffer(stderr, errbuf, 4096);
server_mode = 1; /* to tell log_msg in case we are in both_mode */
return do_server(args, fd);
rc = do_server(args, fd);
out:
free(outbuf);
free(errbuf);
return rc;
}
static int ipc_parent(int cpid, int fd, struct sock_args *args)