On Wed, Sep 18, 2019 at 11:19:40PM +0000, Oleinik, Alexander wrote: > When using qtest "in-process" communication, qtest_sendf directly calls > a function in the server (qtest.c). Combining the contents of the > subsequent socket_sends into the qtest_sendf, makes it so the server can > immediately handle the command, without building a local buffer and > waiting for a newline. > > Signed-off-by: Alexander Oleinik <alx...@bu.edu> > --- > tests/libqtest.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/tests/libqtest.c b/tests/libqtest.c > index 19feea9e17..d770462869 100644 > --- a/tests/libqtest.c > +++ b/tests/libqtest.c > @@ -1086,9 +1086,7 @@ void qtest_bufwrite(QTestState *s, uint64_t addr, const > void *data, size_t size) > gchar *bdata; > > bdata = g_base64_encode(data, size); > - qtest_sendf(s, "b64write 0x%" PRIx64 " 0x%zx ", addr, size); > - socket_send(s->fd, bdata, strlen(bdata)); > - socket_send(s->fd, "\n", 1); > + qtest_sendf(s, "b64write 0x%" PRIx64 " 0x%zx %s\n", addr, size, bdata); > qtest_rsp(s, 0); > g_free(bdata); > } > -- > 2.23.0
Cc John Snow, who added the b64write command. The downside to doing this is that sprintf-formatting needs to be performed on the entire base64 buffer. This slows things down slightly and a larger temporary buffer needs to be allocated, but I'm not sure it matters.
signature.asc
Description: PGP signature