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>
This commit is contained in:
Peter Maydell
2025-11-06 15:19:59 +00:00
committed by Philippe Mathieu-Daudé
parent a8d023be62
commit 3de6afef49

View File

@@ -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;