Re: [dpdk-dev] [PATCH] app/test: flush stdout after forking
From: John Levon <hidden>
Date: 2021-07-26 12:33:13
On Mon, Jul 26, 2021 at 01:27:48PM +0100, Bruce Richardson wrote:
On Mon, Jul 26, 2021 at 01:16:27PM +0100, John Levon wrote:quoted
meson test was not capturing the intended output from the child process; force a flush to ensure it reaches the test log. Signed-off-by: John Levon <redacted> --- app/test/process.h | 1 + 1 file changed, 1 insertion(+)diff --git a/app/test/process.h b/app/test/process.h index a09a088477..0ed91a939e 100644 --- a/app/test/process.h +++ b/app/test/process.h@@ -110,6 +110,7 @@ process_dup(const char *const argv[], int numargs, const char *env_value) for (i = 0; i < num; i++) printf("'%s' ", argv_cpy[i]); printf("\n"); + fflush(stdout);I thought that "\n" normally flushes in most cases, but if explicit flush is necessary for some cases, let's add it.
stdout is only line-buffered if it's to a tty, but regardless, meson test appears to wrap all output into tmp files. I didn't dig into exactly what's going on with meson (or why the fork() matters), but certainly you don't get this output *at all* under meson test (even with -v), but you do running dpdk_test directly. Furthermore, looks like others have found the same thing as there are several other direct fflush()es. regards john