[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/21] test-qga: drop everything until guest-sync
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 12/21] test-qga: drop everything until guest-sync |
Date: |
Sat, 11 Mar 2017 17:22:47 +0400 |
In the following commits, qemu-ga will emit an event on connect that
a real client should treat or ignore and test-qga can skip.
Signed-off-by: Marc-André Lureau <address@hidden>
---
tests/test-qga.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/tests/test-qga.c b/tests/test-qga.c
index c780f0079a..e1f59b7370 100644
--- a/tests/test-qga.c
+++ b/tests/test-qga.c
@@ -13,6 +13,8 @@ typedef struct {
GPid pid;
} TestFixture;
+static void guest_sync_delimited(const TestFixture *fixture);
+
static int connect_qga(char *path)
{
int s, ret, len, i = 0;
@@ -45,12 +47,13 @@ static void qga_watch(GPid pid, gint status, gpointer
user_data)
g_main_loop_quit(fixture->loop);
}
+
static void
fixture_setup(TestFixture *fixture, gconstpointer data)
{
const gchar *extra_arg = data;
GError *error = NULL;
- gchar *cwd, *path, *cmd, **argv = NULL;
+ char *cwd, *path, *cmd, **argv = NULL;
fixture->loop = g_main_loop_new(NULL, FALSE);
@@ -77,6 +80,8 @@ fixture_setup(TestFixture *fixture, gconstpointer data)
fixture->fd = connect_qga(path);
g_assert_cmpint(fixture->fd, !=, -1);
+ guest_sync_delimited(fixture);
+
g_strfreev(argv);
g_free(cmd);
g_free(cwd);
@@ -138,9 +143,8 @@ static void qmp_assertion_message_error(const char
*domain,
} \
} while (0)
-static void test_qga_sync_delimited(gconstpointer fix)
+static void guest_sync_delimited(const TestFixture *fixture)
{
- const TestFixture *fixture = fix;
guint32 v, r = g_random_int();
unsigned char c;
QDict *ret;
@@ -148,12 +152,13 @@ static void test_qga_sync_delimited(gconstpointer fix)
cmd = g_strdup_printf("%c{'execute': 'guest-sync-delimited',"
" 'arguments': {'id': %u } }", 0xff, r);
+
qmp_fd_send(fixture->fd, cmd);
- g_free(cmd);
- v = read(fixture->fd, &c, 1);
- g_assert_cmpint(v, ==, 1);
- g_assert_cmpint(c, ==, 0xff);
+ do {
+ v = read(fixture->fd, &c, 1);
+ g_assert_cmpint(v, ==, 1);
+ } while (c != 0xff);
ret = qmp_fd_receive(fixture->fd);
g_assert_nonnull(ret);
@@ -163,6 +168,14 @@ static void test_qga_sync_delimited(gconstpointer fix)
g_assert_cmpint(r, ==, v);
QDECREF(ret);
+ g_free(cmd);
+}
+
+static void test_qga_sync_delimited(gconstpointer fix)
+{
+ const TestFixture *fixture = fix;
+
+ guest_sync_delimited(fixture);
}
static void test_qga_sync(gconstpointer fix)
--
2.12.0.191.gc5d8de91d
- [Qemu-devel] [PATCH 02/21] pci-host: use more specific type names, (continued)
- [Qemu-devel] [PATCH 02/21] pci-host: use more specific type names, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 03/21] object: fix potential leak in getters, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 04/21] qobject: add quint type, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 05/21] qapi: update the qobject visitor to use QUInt, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 06/21] json: learn to parse uint64 numbers, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 07/21] object: add uint property setter/getter, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 09/21] qdev: use appropriate type, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 08/21] qdev: use int and uint properties, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 10/21] Use uint property getter/setter where appropriate, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 11/21] qdict: learn to lookup quint, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 12/21] test-qga: drop everything until guest-sync,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 13/21] qga: report error on keyfile dump error, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 14/21] qga: add and populate VMDumpInfo, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 15/21] qga: register event emit function, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 16/21] qga: emit VMDUMP_INFO event, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 17/21] virtio-channel: parse qga stream for VMDUMP_INFO event, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 18/21] dump: use qga VMDUMP_INFO for ELF dump, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 19/21] kdump: write vmcoreinfo in header, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 20/21] scripts/dump-guest-memory.py: fix int128_get64 on recent gcc, Marc-André Lureau, 2017/03/11
- [Qemu-devel] [PATCH 21/21] scripts/dump-guest-memory.py: add VMCOREINFO, Marc-André Lureau, 2017/03/11