aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xm-test
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-08-05 13:38:38 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-08-05 13:38:38 +0100
commit5239cb1be72929e408d645d35783697fa3d8e6e7 (patch)
tree56a22a8b880f5262341e440a26ba900744bcbf3c /tools/xm-test
parentccb359dbfc5d53e1445b0f5ef3c4bb84f21151dc (diff)
downloadxen-5239cb1be72929e408d645d35783697fa3d8e6e7.tar.gz
xen-5239cb1be72929e408d645d35783697fa3d8e6e7.tar.bz2
xen-5239cb1be72929e408d645d35783697fa3d8e6e7.zip
xm-test: fix network13 test (protocol and extensions)
Attached there is a patch that fixes the used protocol (was udp - but nobody was listening...) to icmp echo and added the extension, that the dom0 and the other guest ips are also pinged. Because of the many different scenarios (three nested loops) over packet sizes, two guests and different ip addresses, one run of this test case takes now about 4.5 minutes. Signed-off-by: Andreas Florath <xen@flonatel.org>
Diffstat (limited to 'tools/xm-test')
-rw-r--r--tools/xm-test/lib/XmTestLib/NetConfig.py2
-rw-r--r--tools/xm-test/lib/XmTestLib/XenDevice.py2
-rw-r--r--tools/xm-test/tests/network/13_network_domU_udp_pos.py46
3 files changed, 31 insertions, 19 deletions
diff --git a/tools/xm-test/lib/XmTestLib/NetConfig.py b/tools/xm-test/lib/XmTestLib/NetConfig.py
index 857a9a5cca..21be40db48 100644
--- a/tools/xm-test/lib/XmTestLib/NetConfig.py
+++ b/tools/xm-test/lib/XmTestLib/NetConfig.py
@@ -143,7 +143,7 @@ class NetConfig:
for line in lines:
ip = re.search('(\d+\.\d+\.\d+\.\d+)', line)
if ip and self.isIPInRange(ip.group(1)) == True:
- dcmd = 'ip addr del %s dev %s' % (ip.group(1), DOM0_INTF)
+ dcmd = 'ip addr del %s/32 dev %s' % (ip.group(1), DOM0_INTF)
dstatus, doutput = traceCommand(dcmd)
if dstatus:
raise NetworkError("Failed to remove %s aliases: %d" %
diff --git a/tools/xm-test/lib/XmTestLib/XenDevice.py b/tools/xm-test/lib/XmTestLib/XenDevice.py
index 79dfbfc73a..688b39e543 100644
--- a/tools/xm-test/lib/XmTestLib/XenDevice.py
+++ b/tools/xm-test/lib/XmTestLib/XenDevice.py
@@ -217,7 +217,7 @@ class XenNetDevice(XenDevice):
def addDom0AliasCmd(self, dev=DOM0_INTF):
# Method to add start and remove dom0 alias cmds
acmd = 'ip addr add %s dev %s' % (self.dom0_alias_ip, dev)
- rcmd = 'ip addr del %s dev %s' % (self.dom0_alias_ip, dev)
+ rcmd = 'ip addr del %s/32 dev %s' % (self.dom0_alias_ip, dev)
aliascmd = XenNetDevCmd(self, addCmd=acmd, removeCmd=rcmd)
self.dom0_cmds.append(aliascmd)
diff --git a/tools/xm-test/tests/network/13_network_domU_udp_pos.py b/tools/xm-test/tests/network/13_network_domU_udp_pos.py
index b247267f25..140c2291c9 100644
--- a/tools/xm-test/tests/network/13_network_domU_udp_pos.py
+++ b/tools/xm-test/tests/network/13_network_domU_udp_pos.py
@@ -1,14 +1,16 @@
#!/usr/bin/python
# Copyright (C) International Business Machines Corp., 2006
-# Author: <dykman@us.ibm.com>
+# Copyright (C) flonatel GmbH & Co. KG, 2009
+# Authors: <dykman@us.ibm.com>
+# Andreas Florath <xen@flonatel.org>
# UDP tests to domU interface
# - creates two guest domains
# - sets up a single NIC on each on same subnet
# - conducts udp tests to the domU IP address.
-# hping2 $domU_IP -2 -c 1 -d $size
+# hping2 $domU_IP -1 -c 7 -d $size
# where $size = 1, 48, 64, 512, 1440, 1500, 1505,
# 4096, 4192, 32767, 65507, 65508
@@ -31,7 +33,7 @@ def netDomain():
FAIL(str(e))
return dom
-rc = 0
+fails = ""
# Test creates 2 domains, which requires 4 ips: 2 for the domains and 2 for
# aliases on dom0
@@ -39,26 +41,36 @@ if xmtest_netconf.canRunNetTest(4) == False:
SKIP("Don't have enough free configured IPs to run this test")
# Fire up a pair of guest domains w/1 nic each
-src = netDomain()
-src_console = src.getConsole()
-dst = netDomain()
+guest1 = netDomain()
+guest1_console = guest1.getConsole()
+guest1_netdev = guest1.getDevice("eth0")
+guest1_ip = guest1_netdev.getNetDevIP()
+guest1_dom0_alias_ip = guest1_netdev.dom0_alias_ip
+guest2 = netDomain()
+guest2_console = guest2.getConsole()
+guest2_netdev = guest2.getDevice("eth0")
+guest2_ip = guest2_netdev.getNetDevIP()
+guest2_dom0_alias_ip = guest2_netdev.dom0_alias_ip
+def hping_cmd(ip, size):
+ return "hping2 " + ip + " -E /dev/urandom -1 -q " \
+ + "-c 7 --fast -d " + str(size) + " -N " + str(size)
+
+# Ping everything from guests
try:
- # Ping the victim over eth0
- fails=""
- dst_netdev = dst.getDevice("eth0")
- ip2 = dst_netdev.getNetDevIP()
for size in pingsizes:
- out = src_console.runCmd("hping2 " + ip2 + " -E /dev/urandom -2 -q "
- + "-c 20 --fast -d " + str(size) + " -N " + str(size))
- if out["return"]:
- fails += " " + str(size)
- print out["output"]
+ for console in [(guest1_console, "Guest1Console"),
+ (guest2_console, "Guest2Console")]:
+ for dest_ip in [guest1_ip, guest1_dom0_alias_ip,
+ guest2_ip, guest2_dom0_alias_ip ]:
+ out = console[0].runCmd(hping_cmd(dest_ip, size))
+ if out["return"]:
+ fails += " [%d, %s, %s]" % (size, console[1], dest_ip)
except ConsoleError, e:
FAIL(str(e))
-src.stop()
-dst.stop()
+guest1.stop()
+guest2.stop()
if len(fails):
FAIL("UDP hping2 failed for size" + fails + ".")