From: Cédric Bosdonnat <cedric.bosdonnat(a)free.fr>
Some guests may be slower to start than 30 seconds. Use domifstats
to wait for 10 packets to be sent by the guest (usually the DHCP ones
are the first ones).
---
scripts/nwfilter/100-ping-still-working.t | 13 +++++++++++--
scripts/nwfilter/210-no-mac-spoofing.t | 13 +++++++++++--
scripts/nwfilter/230-no-mac-broadcast.t | 13 +++++++++++--
scripts/nwfilter/240-no-arp-spoofing.t | 13 +++++++++++--
4 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/scripts/nwfilter/100-ping-still-working.t
b/scripts/nwfilter/100-ping-still-working.t
index f65bf37..a20b95d 100644
--- a/scripts/nwfilter/100-ping-still-working.t
+++ b/scripts/nwfilter/100-ping-still-working.t
@@ -54,8 +54,17 @@ diag "Start domain";
$dom->create;
ok($dom->get_id() > 0, "running domain has an ID > 0");
-diag "Waiting 30 seconds for guest to finish booting";
-sleep(30);
+diag "Waiting for guest to finish booting";
+my $stats;
+my $tries = 0;
+do {
+ sleep(10);
+ $stats = $dom->interface_stats("vnet0");
+ $tries++;
+} while ($stats->{"tx_packets"} < 10 && $tries < 10);
+
+# Wait a little bit more to make sure dhcp is started in the guest
+sleep(10);
my $mac = get_first_macaddress($dom);
diag "mac is $mac";
diff --git a/scripts/nwfilter/210-no-mac-spoofing.t
b/scripts/nwfilter/210-no-mac-spoofing.t
index 7e80216..b81fc4a 100644
--- a/scripts/nwfilter/210-no-mac-spoofing.t
+++ b/scripts/nwfilter/210-no-mac-spoofing.t
@@ -53,8 +53,17 @@ diag "Start domain";
$dom->create;
ok($dom->get_id() > 0, "running domain has an ID > 0");
-diag "Waiting 30 seconds for guest to finish booting";
-sleep(30);
+diag "Waiting for guest to finish booting";
+my $stats;
+my $tries = 0;
+do {
+ sleep(10);
+ $stats = $dom->interface_stats("vnet0");
+ $tries++;
+} while ($stats->{"tx_packets"} < 10 && $tries < 10);
+
+# Wait a little bit more to make sure dhcp is started in the guest
+sleep(10);
# ping guest first nic
my $mac = get_first_macaddress($dom);
diff --git a/scripts/nwfilter/230-no-mac-broadcast.t
b/scripts/nwfilter/230-no-mac-broadcast.t
index 2e616d6..16ce60d 100644
--- a/scripts/nwfilter/230-no-mac-broadcast.t
+++ b/scripts/nwfilter/230-no-mac-broadcast.t
@@ -52,8 +52,17 @@ diag "Start domain";
$dom->create;
ok($dom->get_id() > 0, "running domain has an ID > 0");
-diag "Waiting 30 seconds for guest to finish booting";
-sleep(30);
+diag "Waiting for guest to finish booting";
+my $stats;
+my $tries = 0;
+do {
+ sleep(10);
+ $stats = $dom->interface_stats("vnet0");
+ $tries++;
+} while ($stats->{"tx_packets"} < 10 && $tries < 10);
+
+# Wait a little bit more to make sure dhcp is started in the guest
+sleep(10);
# ping guest first nic
my $mac = get_first_macaddress($dom);
diff --git a/scripts/nwfilter/240-no-arp-spoofing.t
b/scripts/nwfilter/240-no-arp-spoofing.t
index 596a0ce..6b346aa 100644
--- a/scripts/nwfilter/240-no-arp-spoofing.t
+++ b/scripts/nwfilter/240-no-arp-spoofing.t
@@ -54,8 +54,17 @@ diag "Start domain";
$dom->create;
ok($dom->get_id() > 0, "running domain has an ID > 0");
-diag "Waiting 30 seconds for guest to finish booting";
-sleep(30);
+diag "Waiting for guest to finish booting";
+my $stats;
+my $tries = 0;
+do {
+ sleep(10);
+ $stats = $dom->interface_stats("vnet0");
+ $tries++;
+} while ($stats->{"tx_packets"} < 10 && $tries < 10);
+
+# Wait a little bit more to make sure dhcp is started in the guest
+sleep(10);
# ping guest first nic
my $mac = get_first_macaddress($dom);
--
2.1.4