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