[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping
From: |
Amos Kong |
Subject: |
[Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping |
Date: |
Tue, 20 Jul 2010 09:35:23 +0800 |
User-agent: |
StGit/0.15 |
This test use ping to check the virtual nics, it contains two kinds of test:
1. Packet loss ratio test, ping the guest with different size of packets.
2. Stress test, flood ping guest then use ordinary ping to test the network.
The interval and packet size could be configurated through tests_base.cfg
Signed-off-by: Jason Wang <address@hidden>
Signed-off-by: Amos Kong <address@hidden>
---
0 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests/ping.py b/client/tests/kvm/tests/ping.py
new file mode 100644
index 0000000..cfccda4
--- /dev/null
+++ b/client/tests/kvm/tests/ping.py
@@ -0,0 +1,71 @@
+import logging, time, re, commands
+from autotest_lib.client.common_lib import error
+import kvm_subprocess, kvm_test_utils, kvm_utils, kvm_net_utils
+
+
+def run_ping(test, params, env):
+ """
+ Ping the guest with different size of packets.
+
+ Packet Loss Test:
+ 1) Ping the guest with different size/interval of packets.
+ Stress Test:
+ 1) Flood ping the guest.
+ 2) Check if the network is still usable.
+
+ @param test: Kvm test object
+ @param params: Dictionary with the test parameters
+ @param env: Dictionary with test environment.
+ """
+
+ vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
+ session = kvm_test_utils.wait_for_login(vm)
+
+ counts = params.get("ping_counts", 100)
+ flood_minutes = float(params.get("flood_minutes", 10))
+ nics = params.get("nics").split()
+ strict_check = params.get("strict_check", "no") == "yes"
+
+ packet_size = [0, 1, 4, 48, 512, 1440, 1500, 1505, 4054, 4055, 4096, 4192,
+ 8878, 9000, 32767, 65507]
+
+ try:
+ for i, nic in enumerate(nics):
+ ip = vm.get_address(i)
+ if not ip:
+ logging.error("Could not get the ip of nic index %d" % i)
+ continue
+
+ for size in packet_size:
+ logging.info("Ping with packet size %s" % size)
+ status, output = kvm_net_utils.ping(ip, 10,
+ packetsize = size,
+ timeout = 20)
+ if strict_check:
+ ratio = kvm_net_utils.get_loss_ratio(output)
+ if ratio != 0:
+ raise error.TestFail(" Loss ratio is %s for packet
size"
+ " %s" % (ratio, size))
+ else:
+ if status != 0:
+ raise error.TestFail(" Ping returns non-zero value %s"
%
+ output)
+
+ logging.info("Flood ping test")
+ kvm_net_utils.ping(ip, None, flood = True, output_func= None,
+ timeout = flood_minutes * 60)
+
+ logging.info("Final ping test")
+ status, output = kvm_net_utils.ping(ip, counts,
+ timeout = float(counts) * 1.5)
+ if strict_check:
+ ratio = kvm_net_utils.get_loss_ratio(output)
+ if ratio != 0:
+ raise error.TestFail("Packet loss ratio is %s after flood"
+ % ratio)
+ else:
+ if status != 0:
+ raise error.TestFail(" Ping returns non-zero value %s" %
+ output)
+ finally:
+ session.close()
diff --git a/client/tests/kvm/tests_base.cfg.sample
b/client/tests/kvm/tests_base.cfg.sample
index 6710c00..4f58dc0 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -349,6 +349,11 @@ variants:
kill_vm_gracefully_vm2 = no
address_index_vm2 = 1
+ - ping: install setup unattended_install.cdrom
+ type = ping
+ counts = 100
+ flood_minutes = 10
+
- physical_resources_check: install setup unattended_install.cdrom
type = physical_resources_check
catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
- Re: [Qemu-devel] [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm, (continued)
[Qemu-devel] Re: [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm, Lucas Meneghel Rodrigues, 2010/07/26
[Qemu-devel] [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping,
Amos Kong <=
[Qemu-devel] [RFC PATCH 05/14] KVM-test: Add a subtest jumbo, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc, Amos Kong, 2010/07/19
[Qemu-devel] [RFC PATCH 09/14] KVM-test: Add a subtest of multicast, Amos Kong, 2010/07/19