qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 5/5] tests/libqtest: update virtio-net failover test


From: Laurent Vivier
Subject: [PATCH v3 5/5] tests/libqtest: update virtio-net failover test
Date: Thu, 18 Nov 2021 14:32:25 +0100

Update the migration test to check we correctly wait the end
of the card unplug before doing the migration.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 tests/qtest/virtio-net-failover.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/tests/qtest/virtio-net-failover.c 
b/tests/qtest/virtio-net-failover.c
index 576d4454c3c3..7cc276e6ffc1 100644
--- a/tests/qtest/virtio-net-failover.c
+++ b/tests/qtest/virtio-net-failover.c
@@ -478,6 +478,7 @@ static void test_outmigrate(gconstpointer opaque)
     QTestState *qts;
     QDict *resp, *args, *data;
     g_autofree gchar *uri = g_strdup_printf("exec: cat > %s", (gchar *)opaque);
+    struct timeval timeout;
 
     qts = machine_start(BASE_MACHINE
                      "-netdev user,id=hs0 "
@@ -525,11 +526,19 @@ static void test_outmigrate(gconstpointer opaque)
 
     qobject_unref(resp);
 
-    qtest_outl(qts, ACPI_PCIHP_ADDR_ICH9 + PCI_EJ_BASE, 1);
+    /*
+     * The migration cannot start if the card is not ejected,
+     * so we check it cannot end ("STOP") before the card is ejected
+     */
+    /* 10s is enough for ACPI, PCIe native would need at least 30s */
+    timeout.tv_sec = 10;
+    timeout.tv_usec = 0;
+    resp = qtest_qmp_eventwait_timeout(qts, &timeout, "STOP");
+    g_assert_null(resp);
 
-    resp = qtest_qmp_eventwait_ref(qts, "STOP");
-    qobject_unref(resp);
+    qtest_outl(qts, ACPI_PCIHP_ADDR_ICH9 + PCI_EJ_BASE, 1);
 
+    qtest_qmp_eventwait(qts, "STOP");
     /*
      * in fact, the card is ejected from the point of view of kernel
      * but not really from QEMU to be able to hotplug it back if
-- 
2.33.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]