[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf
From: |
Amos Kong |
Subject: |
[Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf |
Date: |
Tue, 20 Jul 2010 09:36:33 +0800 |
User-agent: |
StGit/0.15 |
Add network load by netperf, server is launched on guest, execute netperf
client with different protocols on host. if all clients execute successfully,
case will be pass. Test result will be record into result.txt.
Now this case only tests with "TCP_RR TCP_CRR UDP_RR TCP_STREAM TCP_MAERTS
TCP_SENDFILE UDP_STREAM". DLPI only supported by Unix, unix domain test is
not necessary, so drop test of DLPI and unix domain.
Signed-off-by: Amos Kong <address@hidden>
---
0 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests/netperf.py
b/client/tests/kvm/tests/netperf.py
new file mode 100644
index 0000000..00a91f0
--- /dev/null
+++ b/client/tests/kvm/tests/netperf.py
@@ -0,0 +1,56 @@
+import logging, commands, os
+from autotest_lib.client.common_lib import error
+import kvm_subprocess, kvm_test_utils, kvm_utils
+
+def run_netperf(test, params, env):
+ """
+ Network stress test with netperf
+
+ 1) Boot up a virtual machine
+ 2) Launch netserver on guest
+ 3) Execute netperf client on host with different protocols
+ 4) Outout the test result
+
+ @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,
+ timeout=int(params.get("login_timeout", 360)))
+ netperf_dir = os.path.join(os.environ['AUTODIR'], "tests/netperf2")
+ setup_cmd = params.get("setup_cmd")
+ guest_ip = vm.get_address()
+ result_file = os.path.join(test.debugdir, "result.txt")
+
+ session.get_command_output("service iptables stop")
+ for i in params.get("netperf_files").split():
+ if not vm.copy_files_to(os.path.join(netperf_dir, i), "/tmp"):
+ raise error.TestError("Could not copy files to guest")
+ if session.get_command_status(setup_cmd % "/tmp", timeout=100) != 0:
+ raise error.TestFail("Fail to setup netperf on guest")
+ if session.get_command_status(params.get("netserver_cmd") % "/tmp") != 0:
+ raise error.TestFail("Fail to start netperf server on guest")
+
+ try:
+ logging.info("Setup and run netperf client on host")
+ s, o = commands.getstatusoutput(setup_cmd % netperf_dir)
+ if s != 0:
+ raise error.TestFail("Fail to setup netperf on host, o: %s" % o)
+ success = True
+ file(result_file, "w").write("Netperf Test Result\n")
+ for i in params.get("protocols").split():
+ cmd = params.get("netperf_cmd") % (netperf_dir, i, guest_ip)
+ logging.debug("Execute netperf client test: %s" % cmd)
+ s, o = commands.getstatusoutput(cmd)
+ if s != 0:
+ logging.error("Fail to execute netperf test, protocol:%s" % i)
+ success = False
+ else:
+ logging.info(o)
+ file(result_file, "a+").write("%s\n" % o)
+ if not success:
+ raise error.TestFail("Not all the test passed")
+ finally:
+ session.get_command_output("killall netserver")
+ session.close()
diff --git a/client/tests/kvm/tests_base.cfg.sample
b/client/tests/kvm/tests_base.cfg.sample
index 7716d48..dec988e 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -398,6 +398,16 @@ variants:
type = mac_change
kill_vm = yes
+ - netperf: install setup unattended_install.cdrom
+ type = netperf
+ nic_mode = tap
+ netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
+ setup_cmd = "cd %s && tar xvfj netperf-2.4.5.tar.bz2 && cd
netperf-2.4.5 && patch -p0 < ../wait_before_data.patch && ./configure && make"
+ netserver_cmd = %s/netperf-2.4.5/src/netserver
+ # test time is 60 seconds, set the buffer size to 1 for more hardware
interrupt
+ netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s -l 60 -- -m 1
+ protocols = "TCP_STREAM TCP_MAERTS TCP_RR TCP_CRR UDP_RR TCP_SENDFILE
UDP_STREAM"
+
- physical_resources_check: install setup unattended_install.cdrom
type = physical_resources_check
catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
- [Qemu-devel] [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver, (continued)
- [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
- [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf,
Amos Kong <=
- [Qemu-devel] [RFC PATCH 13/14] KVM-test: Improve vlan subtest, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool, Amos Kong, 2010/07/19
- [Qemu-devel] Re: [Autotest][RFC PATCH 00/14] Patchset of network related subtests, Lucas Meneghel Rodrigues, 2010/07/20