From: Amos Kong <akong@redhat.com>
To: autotest@vger.kernel.org
Cc: lmr@redhat.com, kvm@vger.kernel.org
Subject: [PATCH v2 13/17] KVM-test: Add a subtest of netperf
Date: Mon, 23 Aug 2010 16:53:35 +0800 [thread overview]
Message-ID: <20100823085335.19173.68507.stgit@190> (raw)
In-Reply-To: <20100823084745.19173.61655.stgit@190>
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 <akong@redhat.com>
---
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..f143bf8
--- /dev/null
+++ b/client/tests/kvm/tests/netperf.py
@@ -0,0 +1,55 @@
+import logging, commands, os
+from autotest_lib.client.common_lib import error
+from autotest_lib.client.bin import utils
+import kvm_test_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.resultsdir, "output_%s" % test.iteration)
+
+ session.get_command_output("iptables -F")
+ 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=200) != 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")
+ utils.run(setup_cmd % netperf_dir)
+ 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("Some of the netperf tests failed")
+ 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 36e3564..3332bc6 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -402,6 +402,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}'
next prev parent reply other threads:[~2010-08-23 8:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-23 8:51 [PATCH v2 00/17] Patchset of network related subtests Amos Kong
2010-08-23 8:51 ` [PATCH v2 01/17] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-08-23 8:52 ` [PATCH v2 02/17] Add a get_ifname function Amos Kong
2010-08-23 8:52 ` [PATCH v2 03/17] KVM Test: Add a function get_interface_name() to kvm_test_utils.py Amos Kong
2010-08-23 8:52 ` [PATCH v2 04/17] KVM Test: Add a common ping module for network related tests Amos Kong
2010-08-23 8:52 ` [PATCH v2 05/17] KVM-test: Add a new subtest ping Amos Kong
2010-08-23 8:52 ` [PATCH v2 06/17] KVM-test: Add a subtest jumbo Amos Kong
2010-08-23 8:52 ` [PATCH v2 07/17] KVM-test: Add basic file transfer test Amos Kong
2010-08-23 8:52 ` [PATCH v2 08/17] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-08-23 8:53 ` [PATCH v2 09/17] KVM-test: Add a subtest of nic promisc Amos Kong
2010-08-23 8:53 ` [PATCH v2 10/17] KVM-test: Add a subtest of multicast Amos Kong
2010-08-23 8:53 ` [PATCH v2 11/17] KVM-test: Add a subtest of pxe Amos Kong
2010-08-23 8:53 ` [PATCH v2 12/17] KVM-test: Add a subtest of changing mac address Amos Kong
2010-08-23 8:53 ` Amos Kong [this message]
2010-08-23 8:53 ` [PATCH v2 14/17] Add support of check if remote port free Amos Kong
2010-08-23 8:53 ` [PATCH v2 15/17] KVM-test: Improve vlan subtest Amos Kong
2010-08-23 8:54 ` [PATCH v2 16/17] Vlan: Replace extra_params '-snapshot' with image_snapshot Amos Kong
2010-08-23 8:54 ` [PATCH v2 17/17] KVM-test: Add subtest of testing offload by ethtool Amos Kong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100823085335.19173.68507.stgit@190 \
--to=akong@redhat.com \
--cc=autotest@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=lmr@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox