Commit 3de6afef49 for qemu.org

commit 3de6afef49449c487256dc6238649ba0f0508789
Author: Peter Maydell <peter.maydell@linaro.org>
Date:   Thu Nov 6 15:19:59 2025 +0000

    qtest: Allow and ignore blank lines in input

    Currently the code that reads the qtest protocol commands insists
    that every input line has a command.  If it receives a line with
    nothing but whitespace it will trip an assertion in
    qtest_process_command().

    This is a little awkward for the case where we are feeding qtest a
    set of bug-reproduction commands via standard input or a file,
    because it means you need to be careful not to leave a blank line at
    the start or the end when cutting and pasting the command sequence
    from a bug report.

    Change the code to allow and ignore blank lines in the input.

    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Fabiano Rosas <farosas@suse.de>
    Message-ID: <20251106151959.1088095-1-peter.maydell@linaro.org>
    Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

diff --git a/system/qtest.c b/system/qtest.c
index cbeb7f3772..67e2385f4b 100644
--- a/system/qtest.c
+++ b/system/qtest.c
@@ -69,6 +69,9 @@ static void *qtest_server_send_opaque;
  * so clients should always handle many async messages before the response
  * comes in.
  *
+ * Extra ASCII space characters in command inputs are permitted and ignored.
+ * Lines containing only spaces are permitted and ignored.
+ *
  * Valid requests
  * ^^^^^^^^^^^^^^
  *
@@ -367,7 +370,11 @@ static void qtest_process_command(CharFrontend *chr, gchar **words)
         fprintf(qtest_log_fp, "\n");
     }

-    g_assert(command);
+    if (!command) {
+        /* Input line was blank: ignore it */
+        return;
+    }
+
     if (strcmp(words[0], "irq_intercept_out") == 0
         || strcmp(words[0], "irq_intercept_in") == 0) {
         DeviceState *dev;