[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xm-test: Fix memset 01 and 02 tests: add support for sysfs memory interface
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1248855646 -3600 # Node ID 41b2c4e4f6746c638192b88ea37d3d25196850ad # Parent 035857a72413b44073f2461ec51e8c6a40b65283 xm-test: Fix memset 01 and 02 tests: add support for sysfs memory interface From: Andreas Florath <xen@xxxxxxxxxxxx> Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> --- tools/xm-test/lib/XmTestLib/XenMemory.py | 68 +++++++++++++++++++++ tools/xm-test/lib/XmTestLib/__init__.py | 1 tools/xm-test/lib/XmTestLib/arch.py | 1 tools/xm-test/tests/memset/01_memset_basic_pos.py | 25 +------ tools/xm-test/tests/memset/03_memset_random_pos.py | 24 +------ 5 files changed, 77 insertions(+), 42 deletions(-) diff -r 035857a72413 -r 41b2c4e4f674 tools/xm-test/lib/XmTestLib/XenMemory.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/xm-test/lib/XmTestLib/XenMemory.py Wed Jul 29 09:20:46 2009 +0100 @@ -0,0 +1,68 @@ +""" + XenMemory.py - grep memory from domU + + This module can handle the /proc/xen/balloon as well as the sysfs + memory interface. + + Copyright (C) flonatel GmbH & Co. KG, 2009 + Author: Andreas Florath + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; under version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +""" + +import os + +from Test import * + +class XenMemory: + + def __init__(self, console): + self.console = console + self.sysfs_mem_dir = "/sys/devices/system/xen_memory/xen_memory0" + + try: + res = self.console.runCmd("ls " + self.sysfs_mem_dir) + self.use_sysfs = res['return'] == 0 + except ConsoleError, e: + FAIL(str(e)) + + + def get_mem_from_domU_sysfs(self): + try: + run = self.console.runCmd( + "cat " + os.path.join(self.sysfs_mem_dir, "info/current_kb")) + except ConsoleError, e: + FAIL(str(e)) + + return int(run["output"]) / 1024 + + def get_mem_from_domU_balloon(self): + try: + run = self.console.runCmd("cat /proc/xen/balloon | grep Current"); + except ConsoleError, e: + FAIL(str(e)) + + match = re.match("^Current allocation:\s+(\d+)\skB", run["output"]) + if not match: + FAIL("Invalid domU meminfo line") + + return int(match.group(1)) / 1024 + + # Prefer sysfs interface + def get_mem_from_domU(self): + if self.use_sysfs: + return self.get_mem_from_domU_sysfs() + else: + return self.get_mem_from_domU_balloon() + diff -r 035857a72413 -r 41b2c4e4f674 tools/xm-test/lib/XmTestLib/__init__.py --- a/tools/xm-test/lib/XmTestLib/__init__.py Wed Jul 29 09:19:30 2009 +0100 +++ b/tools/xm-test/lib/XmTestLib/__init__.py Wed Jul 29 09:20:46 2009 +0100 @@ -10,6 +10,7 @@ from config import * from config import * from XenDevice import * from NetConfig import * +from XenMemory import * # Give this test a clean slate destroyAllDomUs() diff -r 035857a72413 -r 41b2c4e4f674 tools/xm-test/lib/XmTestLib/arch.py --- a/tools/xm-test/lib/XmTestLib/arch.py Wed Jul 29 09:19:30 2009 +0100 +++ b/tools/xm-test/lib/XmTestLib/arch.py Wed Jul 29 09:20:46 2009 +0100 @@ -70,7 +70,6 @@ ia_ParavirtDefaults = {"memory" : "kernel" : ia_getDefaultKernel(), "root" : "/dev/ram0", "ramdisk" : getRdPath() + "/initrd.img", - "extra" : "console=xvc0", } ia_HVMDefaults = {"memory" : 64, "vcpus" : 1, diff -r 035857a72413 -r 41b2c4e4f674 tools/xm-test/tests/memset/01_memset_basic_pos.py --- a/tools/xm-test/tests/memset/01_memset_basic_pos.py Wed Jul 29 09:19:30 2009 +0100 +++ b/tools/xm-test/tests/memset/01_memset_basic_pos.py Wed Jul 29 09:20:46 2009 +0100 @@ -40,17 +40,10 @@ try: console.runCmd("ls") except ConsoleError, e: FAIL(str(e)) + +xen_mem = XenMemory(console) -try: - run = console.runCmd("cat /proc/xen/balloon | grep Current"); -except ConsoleError, e: - FAIL(str(e)) - -match = re.match("[^0-9]+([0-9]+)", run["output"]) -if not match: - FAIL("Invalid domU meminfo line") - -origmem = int(match.group(1)) / 1024 +origmem = xen_mem.get_mem_from_domU() newmem = origmem - 1 # set mem-set for less than default @@ -76,17 +69,7 @@ elif mem != newmem: FAIL("Dom0 failed to verify %i MB; got %i MB" % newmem,mem) # verify memory set internally -try: - run = console.runCmd("cat /proc/xen/balloon | grep Current") -except ConsoleError, e: - FAIL(str(e)) - -# Check the output of 'cat /proc/xen/balloon' -m = re.match("^Current allocation:\s+(\d+)\skB", run["output"]) -if not m: - FAIL("The DomU command 'cat /proc/xen/balloon' failed.") - -domUmem = int(m.group(1)) / 1024 +domUmem = xen_mem.get_mem_from_domU() if domUmem != newmem: FAIL("DomU reported incorrect memory amount: %i MB" % (domUmem)) diff -r 035857a72413 -r 41b2c4e4f674 tools/xm-test/tests/memset/03_memset_random_pos.py --- a/tools/xm-test/tests/memset/03_memset_random_pos.py Wed Jul 29 09:19:30 2009 +0100 +++ b/tools/xm-test/tests/memset/03_memset_random_pos.py Wed Jul 29 09:20:46 2009 +0100 @@ -23,16 +23,9 @@ except DomainError, e: times = random.randint(10,50) -try: - run = console.runCmd("cat /proc/xen/balloon | grep Current"); -except ConsoleError, e: - FAIL(str(e)) +xen_mem = XenMemory(console) -match = re.match("[^0-9]+([0-9]+)", run["output"]) -if not match: - FAIL("Invalid domU meminfo line") - -origmem = int(match.group(1)) / 1024 +origmem = xen_mem.get_mem_from_domU() currmem = origmem for i in range(0,times): @@ -57,17 +50,8 @@ for i in range(0,times): print "mem-set failed:" print output FAIL("mem-set from %i to %i failed" % (currmem, target)) - - try: - run = console.runCmd("cat /proc/xen/balloon | grep Current"); - except ConsoleError, e: - FAIL(str(e)) - - match = re.match("[^0-9]+([0-9]+)", run["output"]) - if not match: - FAIL("Invalid domU meminfo line") - - domUmem = int(match.group(1)) / 1024 + + domUmem = xen_mem.get_mem_from_domU() currmem = target actual = int(getDomInfo(domain.getName(), "Mem")) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |