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-devel

[Xen-devel] [PATCH][XM-TEST] Add test for save/restore with a block devi

To: Xen Developers <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH][XM-TEST] Add test for save/restore with a block device
From: Dan Smith <danms@xxxxxxxxxx>
Date: Tue, 08 Nov 2005 12:26:07 -0800
Delivery-date: Tue, 08 Nov 2005 20:26:13 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)
This patch adds a new test that attempts to save and restore a domain
with a block device attached.  It starts up a domain, mounts a block
device, writes data to it, saves, restores, and then verifies that the
block device can still be read.

Signed-off-by: Dan Smith <danms@xxxxxxxxxx>
diff -r 6e2225934d84 tools/xm-test/tests/restore/Makefile.am
--- a/tools/xm-test/tests/restore/Makefile.am   Tue Nov  8 13:41:25 2005
+++ b/tools/xm-test/tests/restore/Makefile.am   Tue Nov  8 12:17:03 2005
@@ -2,7 +2,8 @@
 
 TESTS = 01_restore_basic_pos.test \
        02_restore_badparm_neg.test \
-       03_restore_badfilename_neg.test
+       03_restore_badfilename_neg.test \
+       04_restore_withdevices_pos.test
 
 XFAIL_TESTS = 
 
diff -r 6e2225934d84 tools/xm-test/tests/restore/04_restore_withdevices_pos.py
--- /dev/null   Tue Nov  8 13:41:25 2005
+++ b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py Tue Nov  8 
12:17:03 2005
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Dan Smith <danms@xxxxxxxxxx>
+
+from XmTestLib import *
+
+domain = XmTestDomain()
+
+domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+
+s, o = traceCommand("mkfs /dev/ram0")
+if s != 0:
+    FAIL("Unable to mkfs /dev/ram0 in dom0")
+
+try:
+    domain.start()
+except DomainError, e:
+    FAIL(str(e))
+
+try:
+    console = XmConsole(domain.getName())
+    console.sendInput("foo")
+
+    run = console.runCmd("mount /dev/hda1 /mnt")
+    if run["return"] != 0:
+        FAIL("Unable to mount /dev/hda1")
+
+    run = console.runCmd("echo bar > /mnt/foo")
+    if run["return"] != 0:
+        FAIL("Unable to write to block device!")
+
+except ConsoleError, e:
+    FAIL(str(e))
+
+console.closeConsole()
+
+try:
+    s, o = traceCommand("xm save %s /tmp/test.state" % domain.getName(),
+                        timeout=30)
+except TimeoutError, e:
+    FAIL(str(e))
+
+if s != 0:
+    FAIL("xm save exited with %i != 0" % s)
+
+# Let things settle
+time.sleep(15)
+
+try:
+    s, o = traceCommand("xm restore /tmp/test.state",
+                        timeout=30)
+except TimeoutError, e:
+    FAIL(str(e))
+
+if s != 0:
+    FAIL("xm restore exited with %i != 0" % s)
+
+try:
+    console = XmConsole(domain.getName())
+
+    run = console.runCmd("ls | grep proc")
+    if run["return"] != 0:
+        FAIL("ls failed on restored domain")
+    
+    run = console.runCmd("cat /mnt/foo | grep bar")
+    if run["return"] != 0:
+        FAIL("Unable to read from block device")
+
+except ConsoleError, e:
+    FAIL(str(e))
+        
-- 
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms@xxxxxxxxxx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>