[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 04/17] tests/qtest: simplify qtest_process_inbuf
From: |
Alex Bennée |
Subject: |
[PATCH v2 04/17] tests/qtest: simplify qtest_process_inbuf |
Date: |
Fri, 7 Feb 2025 15:30:59 +0000 |
Don't both creating a GString to temporarily hold our qtest command.
Instead do a simpler g_strndup and use autofree to clean up
afterwards.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
system/qtest.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/system/qtest.c b/system/qtest.c
index e68ed0f2a8..bb1efba9fd 100644
--- a/system/qtest.c
+++ b/system/qtest.c
@@ -763,25 +763,21 @@ static void qtest_process_command(CharBackend *chr, gchar
**words)
}
}
+/*
+ * Process as much of @inbuf as we can in newline terminated chunks.
+ * Remove the processed commands from @inbuf as we go.
+ */
static void qtest_process_inbuf(CharBackend *chr, GString *inbuf)
{
char *end;
while ((end = strchr(inbuf->str, '\n')) != NULL) {
- size_t offset;
- GString *cmd;
- gchar **words;
-
- offset = end - inbuf->str;
+ size_t len = end - inbuf->str;
+ g_autofree char *cmd = g_strndup(inbuf->str, len);
+ g_auto(GStrv) words = g_strsplit(cmd, " ", 0);
- cmd = g_string_new_len(inbuf->str, offset);
- g_string_erase(inbuf, 0, offset + 1);
-
- words = g_strsplit(cmd->str, " ", 0);
+ g_string_erase(inbuf, 0, len + 1);
qtest_process_command(chr, words);
- g_strfreev(words);
-
- g_string_free(cmd, TRUE);
}
}
--
2.39.5
- [PATCH v2 00/17] maintainer updates for feb25 (qtest, gdbstub, plugins) pre-PR, Alex Bennée, 2025/02/07
- [PATCH v2 01/17] tests/docker: replicate the check-rust-tools-nightly CI job, Alex Bennée, 2025/02/07
- [PATCH v2 02/17] tests/qtest: don't attempt to clock_step while waiting for virtio ISR, Alex Bennée, 2025/02/07
- [PATCH v2 05/17] tests/qtest: rename qtest_send_prefix and roll-up into qtest_send, Alex Bennée, 2025/02/07
- [PATCH v2 03/17] tests/qtest: don't step clock at start of npcm7xx periodic IRQ test, Alex Bennée, 2025/02/07
- [PATCH v2 11/17] gdbstub: Try unlinking the unix socket before binding, Alex Bennée, 2025/02/07
- [PATCH v2 08/17] tests/qtest/migration: Add --full option, Alex Bennée, 2025/02/07
- [PATCH v2 06/17] tests/qtest: tighten up the checks on clock_step, Alex Bennée, 2025/02/07
- [PATCH v2 04/17] tests/qtest: simplify qtest_process_inbuf,
Alex Bennée <=
- [PATCH v2 16/17] docs/user: Document the %d placeholder and suspend=n QEMU_GDB features, Alex Bennée, 2025/02/07
- [PATCH v2 07/17] Revert "util/timer: avoid deadlock when shutting down", Alex Bennée, 2025/02/07
- [PATCH v2 10/17] gdbstub: Allow the %d placeholder in the socket path, Alex Bennée, 2025/02/07
- [PATCH v2 13/17] user: Introduce host_interrupt_signal, Alex Bennée, 2025/02/07
- [PATCH v2 14/17] osdep: Introduce qemu_kill_thread(), Alex Bennée, 2025/02/07
- [PATCH v2 15/17] gdbstub: Allow late attachment, Alex Bennée, 2025/02/07
- [PATCH v2 12/17] user: Introduce user/signal.h, Alex Bennée, 2025/02/07
- [PATCH v2 09/17] tests/qtest/migration: Pick smoke tests, Alex Bennée, 2025/02/07
- [PATCH v2 17/17] tests/tcg: Add late gdbstub attach test, Alex Bennée, 2025/02/07