diff mbox series

[01/12] fuzz: Change the way we write qtest log to stderr

Message ID 20200723033933.21883-2-alxndr@bu.edu (mailing list archive)
State New, archived
Headers show
Series Add a General Virtual Device Fuzzer | expand

Commit Message

Alexander Bulekov July 23, 2020, 3:39 a.m. UTC
Telling QTest to log to /dev/fd/2, essentially results in dup(2). This
is fine, if other code isn't logging to stderr. Otherwise, the order of
the logs is mixed due to buffering issues, since two file-descriptors
are used to write to the same file. We can avoid this, since just
specifying "-qtest" sets the log fd to stderr. If we want to disable
qtest logs, we can just add -qtest-log none.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
---
 tests/qtest/fuzz/fuzz.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Darren Kenny July 23, 2020, 1:15 p.m. UTC | #1
On Wednesday, 2020-07-22 at 23:39:22 -04, Alexander Bulekov wrote:
> Telling QTest to log to /dev/fd/2, essentially results in dup(2). This
> is fine, if other code isn't logging to stderr. Otherwise, the order of
> the logs is mixed due to buffering issues, since two file-descriptors
> are used to write to the same file. We can avoid this, since just
> specifying "-qtest" sets the log fd to stderr. If we want to disable
> qtest logs, we can just add -qtest-log none.
>
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>

Reviewed-by: Darren Kenny <darren.kenny@oracle.com>

> ---
>  tests/qtest/fuzz/fuzz.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c
> index 031594a686..8234b68754 100644
> --- a/tests/qtest/fuzz/fuzz.c
> +++ b/tests/qtest/fuzz/fuzz.c
> @@ -202,9 +202,8 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp)
>  
>      /* Run QEMU's softmmu main with the fuzz-target dependent arguments */
>      GString *cmd_line = fuzz_target->get_init_cmdline(fuzz_target);
> -    g_string_append_printf(cmd_line,
> -                           " -qtest /dev/null -qtest-log %s",
> -                           getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null");
> +    g_string_append_printf(cmd_line, " %s -qtest /dev/null ",
> +                           getenv("QTEST_LOG") ? "" : "-qtest-log none");
>  
>      /* Split the runcmd into an argv and argc */
>      wordexp_t result;
> -- 
> 2.27.0
diff mbox series

Patch

diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c
index 031594a686..8234b68754 100644
--- a/tests/qtest/fuzz/fuzz.c
+++ b/tests/qtest/fuzz/fuzz.c
@@ -202,9 +202,8 @@  int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp)
 
     /* Run QEMU's softmmu main with the fuzz-target dependent arguments */
     GString *cmd_line = fuzz_target->get_init_cmdline(fuzz_target);
-    g_string_append_printf(cmd_line,
-                           " -qtest /dev/null -qtest-log %s",
-                           getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null");
+    g_string_append_printf(cmd_line, " %s -qtest /dev/null ",
+                           getenv("QTEST_LOG") ? "" : "-qtest-log none");
 
     /* Split the runcmd into an argv and argc */
     wordexp_t result;