This patch makes xm-test run in 45 minutes, as opposed to 100 minutes
on my machine. I left the waitForBoot() line commented out so that it
can easily be re-enabled if a slower machine needs it, although I hope
not.
Signed-off-by: Dan Smith <danms@xxxxxxxxxx>
# HG changeset patch
# User danms@xxxxxxxxxx
# Node ID 50e47ac8c475b8d062db55457419ea563307a86f
# Parent 995e94c4802e5c0376b0483f3b2473a8f7d7808e
Reduce the time required to start xm-test domains by allowing the console
to retry connecting to the DomU multiple times. A polling approach instead
of a wait-and-hope-it-works approach.
diff -r 995e94c4802e -r 50e47ac8c475 tools/xm-test/lib/XmTestLib/Console.py
--- a/tools/xm-test/lib/XmTestLib/Console.py Fri Nov 11 18:11:13 2005
+++ b/tools/xm-test/lib/XmTestLib/Console.py Mon Nov 14 19:55:17 2005
@@ -62,26 +62,37 @@
self.historySaveCmds = historySaveCmds
self.debugMe = False
self.limit = None
+ self.delay = 2
consoleCmd = ["/usr/sbin/xm", "xm", "console", domain]
- if verbose:
- print "Console executing: " + str(consoleCmd)
-
- pid, fd = pty.fork()
-
- if pid == 0:
- os.execvp("/usr/sbin/xm", consoleCmd[1:])
-
- self.consolePid = pid
- self.consoleFd = fd
-
- tty.setraw(self.consoleFd, termios.TCSANOW)
+ start = time.time()
+
+ while (time.time() - start) < self.TIMEOUT:
+ if verbose:
+ print "Console executing: %s" % str(consoleCmd)
+
+ pid, fd = pty.fork()
+
+ if pid == 0:
+ os.execvp("/usr/sbin/xm", consoleCmd[1:])
+
+ self.consolePid = pid
+ self.consoleFd = fd
+
+ tty.setraw(self.consoleFd, termios.TCSANOW)
- bytes = self.__chewall(self.consoleFd)
- if bytes < 0:
- raise ConsoleError("Console didn't respond")
-
+ bytes = self.__chewall(self.consoleFd)
+
+ if bytes > 0:
+ return
+
+ if verbose:
+ print "Console didn't attach, waiting %i sec..." % self.delay
+ time.sleep(self.delay)
+
+ raise ConsoleError("Console didn't respond after %i secs" %
self.TIMEOUT)
+
def __addToHistory(self, line):
self.historyBuffer.append(line)
self.historyLines += 1
diff -r 995e94c4802e -r 50e47ac8c475 tools/xm-test/lib/XmTestLib/XenDomain.py
--- a/tools/xm-test/lib/XmTestLib/XenDomain.py Fri Nov 11 18:11:13 2005
+++ b/tools/xm-test/lib/XmTestLib/XenDomain.py Mon Nov 14 19:55:17 2005
@@ -228,7 +228,7 @@
# status, output = traceCommand("xm list")
XenDomain.start(self)
- waitForBoot()
+# waitForBoot()
def startNow(self):
XenDomain.start(self)
--
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
|