WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xm-test: Fix memset 01 and 02 tests: add

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xm-test: Fix memset 01 and 02 tests: add support for sysfs memory interface
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Jul 2009 01:30:19 -0700
Delivery-date: Wed, 29 Jul 2009 01:30:34 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xm-test: Fix memset 01 and 02 tests: add support for sysfs memory interface, Xen patchbot-unstable <=