[v5,11/20] libqtest: make bufwrite rely on the TransportOps
diff mbox series

Message ID 20191113225030.17023-12-alxndr@bu.edu
State New
Headers show
  • Add virtual device fuzzing support
Related show

Commit Message

Oleinik, Alexander Nov. 13, 2019, 10:50 p.m. UTC
When using qtest "in-process" communication, qtest_sendf directly calls
a function in the server (qtest.c). Previously, bufwrite used
socket_send, which bypasses the TransportOps enabling the call into
qtest.c. This change replaces the socket_send calls with ops->send,
maintaining the benefits of the direct socket_send call, while adding
support for in-process qtest calls.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
 tests/libqtest.c | 4 ++--
 tests/libqtest.h | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff mbox series

diff --git a/tests/libqtest.c b/tests/libqtest.c
index c406b2ea09..6d3bcb6766 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -1080,8 +1080,8 @@  void qtest_bufwrite(QTestState *s, uint64_t addr, const void *data, size_t size)
     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);
+    s->ops.send(s, bdata);
+    s->ops.send(s, "\n");
     qtest_rsp(s, 0);
diff --git a/tests/libqtest.h b/tests/libqtest.h
index c9e21e05b3..0e9b8908ef 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -729,4 +729,7 @@  bool qtest_probe_child(QTestState *s);
 void qtest_set_expected_status(QTestState *s, int status);
+QTestState *qtest_inproc_init(bool log, const char* arch,
+                    void (*send)(void*, const char*));
+void qtest_client_inproc_recv(void *opaque, const char *str);