[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: Xen Developers <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Dan Smith <danms@xxxxxxxxxx>
  • Date: Tue, 08 Nov 2005 12:26:07 -0800
  • Delivery-date: Tue, 08 Nov 2005 20:26:13 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.