# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID bdb8c00ddb852fc6eab2175b7e3738d015ec2738
# Parent 74737286e9f5156c44fb202edaae9dc900697f38
# Parent a8b759a40372c347241dcf9bf4e915c737760349
merge
diff -r 74737286e9f5 -r bdb8c00ddb85 tools/xm-test/lib/XmTestLib/Console.py
--- a/tools/xm-test/lib/XmTestLib/Console.py Thu Nov 10 11:04:29 2005
+++ b/tools/xm-test/lib/XmTestLib/Console.py Thu Nov 10 11:05:22 2005
@@ -23,13 +23,13 @@
a _very_ specific value, set in the PROMPT
variable of this script
"""
-import sys;
-import os;
-import pty;
-import tty;
-import termios;
-import fcntl;
-import select;
+import sys
+import os
+import pty
+import tty
+import termios
+import fcntl
+import select
from Test import *
@@ -52,15 +52,15 @@
are included in the history buffer
"""
- self.TIMEOUT = 30;
- self.PROMPT = "@%@%> ";
- self.domain = domain;
- self.historyBuffer = [];
- self.historyLines = 0;
- self.historyLimit = historyLimit;
- self.historySaveAll = historySaveAll;
- self.historySaveCmds = historySaveCmds;
- self.debugMe = False;
+ self.TIMEOUT = 30
+ self.PROMPT = "@%@%> "
+ self.domain = domain
+ self.historyBuffer = []
+ self.historyLines = 0
+ self.historyLimit = historyLimit
+ self.historySaveAll = historySaveAll
+ self.historySaveCmds = historySaveCmds
+ self.debugMe = False
self.limit = None
consoleCmd = ["/usr/sbin/xm", "xm", "console", domain]
@@ -68,62 +68,62 @@
if verbose:
print "Console executing: " + str(consoleCmd)
- pid, fd = pty.fork();
+ 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);
+ 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")
def __addToHistory(self, line):
- self.historyBuffer.append(line);
- self.historyLines += 1;
+ self.historyBuffer.append(line)
+ self.historyLines += 1
if self.historyLines > self.historyLimit:
- self.historyBuffer = self.historyBuffer[1:];
- self.historyLines -= 1;
+ self.historyBuffer = self.historyBuffer[1:]
+ self.historyLines -= 1
def clearHistory(self):
"""Clear the history buffer"""
- self.historyBuffer = [];
- self.historyLines = 0;
+ self.historyBuffer = []
+ self.historyLines = 0
def getHistory(self):
"""Returns a string containing the entire history buffer"""
- output = "";
+ output = ""
for line in self.historyBuffer:
- output += line + "\n";
-
- return output;
+ output += line + "\n"
+
+ return output
def setTimeout(self, timeout):
"""Sets the timeout used to determine if a remote command
has blocked"""
- self.TIMEOUT = timeout;
+ self.TIMEOUT = timeout
def setPrompt(self, prompt):
"""Sets the string key used to delimit the end of command
output"""
- self.PROMPT = prompt;
+ self.PROMPT = prompt
def __chewall(self, fd):
- timeout = 0;
- bytes = 0;
+ timeout = 0
+ bytes = 0
while timeout < 3:
- i, o, e = select.select([fd], [], [], 1);
+ i, o, e = select.select([fd], [], [], 1)
if fd in i:
try:
foo = os.read(fd, 1)
@@ -143,7 +143,7 @@
if self.debugMe:
print "Ignored %i bytes of miscellaneous console output" % bytes
- return bytes;
+ return bytes
def __runCmd(self, command, saveHistory=True):
@@ -152,15 +152,15 @@
lines = 0
bytes = 0
- self.__chewall(self.consoleFd);
+ self.__chewall(self.consoleFd)
if verbose:
print "[%s] Sending `%s'" % (self.domain, command)
- os.write(self.consoleFd, "%s\n" % command);
+ os.write(self.consoleFd, "%s\n" % command)
while 1==1:
- i, o, e = select.select([self.consoleFd], [], [], self.TIMEOUT);
+ i, o, e = select.select([self.consoleFd], [], [], self.TIMEOUT)
if self.consoleFd in i:
try:
@@ -182,59 +182,59 @@
if lines > 0:
output += line + "\n"
if saveHistory:
- self.__addToHistory(line);
+ self.__addToHistory(line)
elif self.historySaveCmds and saveHistory:
- self.__addToHistory("*" + line);
- lines += 1;
- line = "";
+ self.__addToHistory("*" + line)
+ lines += 1
+ line = ""
elif str == "\r":
pass # ignore \r's
else:
- line += str;
+ line += str
if line == self.PROMPT:
- break;
-
- return output;
+ break
+
+ return output
def runCmd(self, command):
"""Runs a command on the remote terminal and returns the output
as well as the return code. For example:
- ret = c.runCmd("ls");
- print ret["output"];
- sys.exit(run["return"]);
+ ret = c.runCmd("ls")
+ print ret["output"]
+ sys.exit(run["return"])
"""
# Allow exceptions to bubble up
- realOutput = self.__runCmd(command);
- retOutput = self.__runCmd("echo $?", saveHistory=False);
+ realOutput = self.__runCmd(command)
+ retOutput = self.__runCmd("echo $?", saveHistory=False)
try:
- retCode = int(retOutput);
+ retCode = int(retOutput)
except:
- retCode = 255;
+ retCode = 255
return {
"output": realOutput,
"return": retCode,
- };
+ }
def sendInput(self, input):
"""Sends input to the remote terminal, but doesn't check
for a return code"""
- realOutput = self.__runCmd(input);
+ realOutput = self.__runCmd(input)
return {
"output": realOutput,
"return": 0,
- };
+ }
def closeConsole(self):
"""Closes the console connection and ensures that the console
process is killed"""
- os.close(self.consoleFd);
- os.kill(self.consolePid, 2);
+ os.close(self.consoleFd)
+ os.kill(self.consolePid, 2)
def setLimit(self, limit):
@@ -254,23 +254,23 @@
code as the domU command.
"""
- verbose = True;
+ verbose = True
try:
- t = XmConsole(sys.argv[1]);
+ t = XmConsole(sys.argv[1])
except ConsoleError, e:
print "Failed to attach to console (%s)" % str(e)
sys.exit(255)
try:
- run = t.runCmd(sys.argv[2]);
+ run = t.runCmd(sys.argv[2])
except ConsoleError, e:
print "Console failed (%)" % str(e)
sys.exit(255)
- t.closeConsole();
+ t.closeConsole()
- print run["output"],;
- sys.exit(run["return"]);
+ print run["output"],
+ sys.exit(run["return"])
diff -r 74737286e9f5 -r bdb8c00ddb85 tools/xm-test/runtest.sh
--- a/tools/xm-test/runtest.sh Thu Nov 10 11:04:29 2005
+++ b/tools/xm-test/runtest.sh Thu Nov 10 11:05:22 2005
@@ -1,215 +1,259 @@
#!/bin/sh
-usage() {
- echo "Usage: $0 [opts] <logfile>"
- echo " Where opts are:"
- echo " -d : do not submit a report for this run"
- echo " -b : do not ask any questions (batch mode)"
- echo " -e <email> : set email address for report"
-}
##
## Test driver script
##
-#
-# Defaults
-#
-MAXFAIL=10
-report=yes
-batch=no
-
-#
-# Resolve options
-#
-while [ $# -gt 0 ]
-do
- case "$1" in
- -d)
- echo "(Skipping report submission)"
- report=no
- ;;
- -b)
- echo "(Batch mode)"
- batch=yes
- ;;
- -e)
- shift
- echo $1 > contact_info
- echo "(Email set to $1)"
- ;;
- *)
- LOGFILE=$1
- break
- ;;
- esac
- shift
-done
-
-#
-# Usage
-#
-if [ -z $LOGFILE ]; then
- usage
- exit 1
-fi
-
-#
-# Output files
-#
-OSREPORTTEMP=${LOGFILE}.os.xml
-PROGREPORTTEMP=${LOGFILE}.prog.xml
-RESULTREPORTTEMP=${LOGFILE}.result.xml
-OUTPUT=${LOGFILE}.output
-SUMMARY=${LOGFILE}.summary
-PASSFAIL=${LOGFILE}.passfail
-REPORT=${LOGFILE}.report
-FAILURES=${LOGFILE}.failures
-
-#
-# Make sure we're root
-#
-uid=$(id -u)
-if [ $uid != 0 ]; then
- echo "ERROR: I must be run as root!"
- exit 1
-fi
-
-#
-# See if the ramdisk has been built
-#
-rdsize=$(stat -c %s ramdisk/initrd.img 2>/dev/null)
-if [ -z "$rdsize" ] || [ $rdsize -le 16384 ]; then
- echo "Cannot find a valid ramdisk. You need to run \"make\" or"
- echo "copy in a previously-built ramdisk to the ramdisk/ directory"
- exit 1
-fi
-
-#
-# See if xend is running
-#
-if ! xm list >/dev/null 2>&1; then
- echo "'xm list' failed: is xend running?"
- exit 1
-fi
-
-#
-# Make sure permissions are correct
-#
-chmod a+x lib/XmTestReport/*
-chmod a+x mkreport mergereport
-
-#
+usage() {
+ echo "Usage: $0 [opts] <report>"
+ echo " Where report is a name that will be used for report files"
+ echo ""
+ echo " Where opts are:"
+ echo " -d : do not submit a report for this run"
+ echo " -b : do not ask any questions (batch mode)"
+ echo " -q : run a quick test set"
+ echo " -e <email> : set email address for report"
+ echo " -s <report> : just submit report <report>"
+}
+
+# Just submit the report
+submit_report() {
+
+ reportfile=$1
+
+ ./lib/XmTestReport/Report.py $reportfile
+}
+
+# Generate XML result report from output file
+make_result_report() {
+ output=$1
+ reportfile=$2
+ if ! ./lib/XmTestReport/ResultReport.py $output > $reportfile; then
+ echo "Unable to generate clean ResultReport"
+ echo "Take a look at $report"
+ exit 1
+ fi
+}
+
+# Collect environment information for XML report
+make_environment_report() {
+ os=$1
+ prog=$2
+ if ! ./lib/XmTestReport/OSReport.py > $os; then
+ echo "Unable to generate clean OSReport"
+ echo "Take a look at $os"
+ exit 1
+ fi
+ if ! ./lib/XmTestReport/ProgReport.py > $prog; then
+ echo "Unable to generate clean ProgReport"
+ echo "Take a look at $prog"
+ exit 1
+ fi
+}
+
+# Check conditions needed to actually run the tests
+runnable_tests() {
+ # Make sure we're root
+ uid=$(id -u)
+ if [ $uid != 0 ]; then
+ echo "ERROR: I must be run as root!"
+ exit 1
+ fi
+
+ # See if the ramdisk has been built
+ rdsize=$(stat -c %s ramdisk/initrd.img 2>/dev/null)
+ if [ -z "$rdsize" ] || [ $rdsize -le 16384 ]; then
+ echo "Cannot find a valid ramdisk. You need to run \"make\" or"
+ echo "copy in a previously-built ramdisk to the ramdisk/ directory"
+ exit 1
+ fi
+
+ # See if xend is running
+ if ! xm list >/dev/null 2>&1; then
+ echo "'xm list' failed: is xend running?"
+ exit 1
+ fi
+
+}
+
# Get contact info if needed
-#
-if [ ! -f contact_info ]; then
- if [ "$batch" = "yes" ]; then
- echo "Unable to read contact_info!"
- echo "Please run me once interactively before using batch mode!"
- exit 1
- else
- echo "Please provide your email address so that we can "
- echo "contact you if we need further information concerning"
- echo "your results. Any information provided will be"
- echo "kept private. If you wish to remain anonymous, please"
- echo "hit [ENTER] now."
-
- while ! echo "$EMAIL" | grep -q '@'; do
- echo
- echo -n "Your email address: "
- read EMAIL
- if [ -z $EMAIL ]; then
- EMAIL="anonymous@xxxxxxxxxxxxx"
- fi
- done
- echo $EMAIL > contact_info
- fi
-fi
-
-#
-# Collect environment information for XML report
-#
-if ! ./lib/XmTestReport/OSReport.py > $OSREPORTTEMP; then
- echo "Unable to generate clean OSReport"
- echo "Take a look at $OSREPORTTEMP"
- exit 1
-fi
-if ! ./lib/XmTestReport/ProgReport.py > $PROGREPORTTEMP; then
- echo "Unable to generate clean ProgReport"
- echo "Take a look at $PROGREPORTTEMP"
- exit 1
-fi
-
-#
+get_contact_info() {
+
+ if [ ! -f contact_info ]; then
+ if [ "$batch" = "yes" ]; then
+ echo "Unable to read contact_info!"
+ echo "Please run me once interactively before using batch mode!"
+ exit 1
+ else
+ echo "Please provide your email address so that we can "
+ echo "contact you if we need further information concerning"
+ echo "your results. Any information provided will be"
+ echo "kept private. If you wish to remain anonymous, please"
+ echo "hit [ENTER] now."
+
+ while ! echo "$EMAIL" | grep -q '@'; do
+ echo
+ echo -n "Your email address: "
+ read EMAIL
+ if [ -z $EMAIL ]; then
+ EMAIL="anonymous@xxxxxxxxxxxxx"
+ fi
+ done
+ echo $EMAIL > contact_info
+ fi
+ fi
+}
+
# Run the tests
-#
-export TEST_VERBOSE=1
-echo Running tests...
-make -k check > $OUTPUT 2>&1
-
-#
+run_tests() {
+ output=$1
+ echo Running tests...
+ TEST_VERBOSE=1 make -k check > $output 2>&1
+}
+
+run_tests_quick() {
+
+ output=$1
+
+ create_tests="01_create_basic_pos.test 07_create_mem64_pos.test
10_create_fastdestroy.test 14_create_blockroot_pos.test"
+ unpause_tests="01_unpause_basic_pos.test"
+ memset_tests="01_memset_basic_pos.test 03_memset_random_pos.test"
+ help_tests="06_help_allcmds.test"
+ testgroups="create unpause memset help"
+
+ echo "*** Quick test" > $output
+ for group in $testgroups; do
+ eval $(echo list=\$${group}_tests)
+ echo "*** Running tests [$list] from $group"
+ (cd tests/$group && TEST_VERBOSE=1 make -k check TESTS="$list") >>
$output 2>&1
+ done
+
+}
+
# Generate some plain-text reports
-#
-echo "Making PASS/FAIL report ($PASSFAIL)..."
-cat $OUTPUT | egrep '(REASON|PASS|FAIL|XPASS|XFAIL|SKIP)' | perl -pe
's/^(PASS|FAIL|XPASS|XFAIL)(.+)$/$1$2\n/' > $PASSFAIL
-
-echo "Making FAIL report ($FAILURES)..."
-cat $PASSFAIL | egrep '(REASON|FAIL)' > $FAILURES
-
-NUMPASS=`grep -c PASS $OUTPUT`
-NUMFAIL=`grep -c FAIL $OUTPUT`
-NUMXPASS=`grep -c XPASS $OUTPUT`
-NUMXFAIL=`grep -c XFAIL $OUTPUT`
-cat > $SUMMARY << EOF
+make_text_reports() {
+ passfail=$1
+ failures=$2
+ output=$3
+ reportfile=$4
+ summary=summary.tmp
+ echo "Making PASS/FAIL report ($passfail)..."
+ cat $OUTPUT | egrep '(REASON|PASS|FAIL|XPASS|XFAIL|SKIP)' | perl -pe
's/^(PASS|FAIL|XPASS|XFAIL)(.+)$/$1$2\n/' > $passfail
+
+ echo "Making FAIL report ($failures)..."
+ cat $passfail | egrep '(REASON|FAIL)' > $failures
+
+ NUMPASS=`grep -c PASS $output`
+ NUMFAIL=`grep -c FAIL $output`
+ NUMXPASS=`grep -c XPASS $output`
+ NUMXFAIL=`grep -c XFAIL $output`
+ cat > $summary << EOF
Xm-test execution summary:
PASS: $NUMPASS
FAIL: $NUMFAIL
XPASS: $NUMXPASS
XFAIL: $NUMXFAIL
EOF
-
-cat $SUMMARY > $REPORT
-
-echo -e '\n\nDetails:\n' >> $REPORT
-
-./mkreport $PASSFAIL >> $REPORT
-
-#
-# Check to see if it's worth reporting these results
-#
-#if [ "$batch" = "no" ] &&
-# [ "$report" = "yes" ] &&
-# [ $NUMFAIL -gt $MAXFAIL ]; then
-# echo "NOTE: $NUMFAIL tests failed, which may be erroneous. It may"
-# echo "be a good idea to review the report before sending. If you"
-# echo "choose not to submit the report, it will be saved for your review"
-# echo "and later submission."
-# echo
-# echo -n "Submit anyway? [y/n] "
-# read ANSWER
-# if [ "$ANSWER" = "n" ]; then
-# report=no
-# fi
-#fi
-
-#
-# Generate the XML result report
-#
-if ! ./lib/XmTestReport/ResultReport.py $OUTPUT > $RESULTREPORTTEMP; then
- echo "Unable to generate clean ResultReport"
- echo "Take a look at $RESULTREPORTTEMP"
- exit 1
-fi
-
-#
-# Maybe submit report and save the combined XML file
-#
-if [ "$report" = "yes" ]; then
- echo "Sending report..."
- ./lib/XmTestReport/Report.py -D $OSREPORTTEMP $PROGREPORTTEMP \
- $RESULTREPORTTEMP > $1.xml
- echo "Report also saved in $1.xml"
-else
- echo "Saving report to $1.xml..."
- ./lib/XmTestReport/Report.py -d $OSREPORTTEMP $PROGREPORTTEMP \
- $RESULTREPORTTEMP > $1.xml
-fi
+
+ cat $summary > $reportfile
+
+ echo -e '\n\nDetails:\n' >> $reportfile
+
+ ./mkreport $passfail >> $reportfile
+
+ rm $summary
+}
+
+############
+### Main ###
+############
+
+# Defaults
+MAXFAIL=10
+report=yes
+batch=no
+run=yes
+
+# Resolve options
+while [ $# -gt 0 ]
+ do
+ case "$1" in
+ -d)
+ echo "(Skipping report submission)"
+ report=no
+ ;;
+ -b)
+ echo "(Batch mode)"
+ batch=yes
+ ;;
+ -e)
+ shift
+ echo $1 > contact_info
+ echo "(Email set to $1)"
+ ;;
+ -q)
+ run=quick
+ ;;
+ -s)
+ run=no
+ ;;
+ *)
+ REPORT=$1
+ break
+ ;;
+ esac
+ shift
+done
+
+# Usage
+if [ -z $REPORT ]; then
+ usage
+ exit 1
+fi
+
+# Output files
+OSREPORTTEMP=${REPORT}.os.xml
+PROGREPORTTEMP=${REPORT}.prog.xml
+RESULTREPORTTEMP=${REPORT}.result.xml
+XMLREPORT=${REPORT}.xml
+OUTPUT=${REPORT}.output
+SUMMARY=${REPORT}.summary
+PASSFAIL=${REPORT}.passfail
+TXTREPORT=${REPORT}.report
+FAILURES=${REPORT}.failures
+
+# Make sure permissions are correct
+chmod a+x lib/XmTestReport/*
+chmod a+x mkreport mergereport
+
+if [ ! -f contact_info ]; then
+ if [ "$batch" = "yes" ]; then
+ echo "Unable to read contact_info"
+ echo "You must run me interactively once!"
+ exit 1
+ else
+ get_contact_info
+ fi
+fi
+
+if [ "$run" != "no" ]; then
+ runnable_tests
+ make_environment_report $OSREPORTTEMP $PROGREPORTTEMP
+ if [ "$run" = "yes" ]; then
+ run_tests $OUTPUT
+ else
+ run_tests_quick $OUTPUT
+ fi
+ make_text_reports $PASSFAIL $FAILURES $OUTPUT $TXTREPORT
+ make_result_report $OUTPUT $RESULTREPORTTEMP
+ cat $OSREPORTTEMP $PROGREPORTTEMP $RESULTREPORTTEMP > $XMLREPORT
+ rm $OSREPORTTEMP $PROGREPORTTEMP $RESULTREPORTTEMP
+fi
+
+if [ "$report" = "yes" ] && [ "$run" = "yes" ]; then
+ if [ ! -f "$XMLREPORT" ]; then
+ echo "No such file: $XMLREPORT"
+ exit 1
+ fi
+ submit_report $XMLREPORT
+fi
diff -r 74737286e9f5 -r bdb8c00ddb85
tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
---
a/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
Thu Nov 10 11:04:29 2005
+++
b/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
Thu Nov 10 11:05:22 2005
@@ -36,7 +36,9 @@
saveLog(console.getHistory())
FAIL(str(e))
-os.system("mkfs.ext2 -F /dev/ram1")
+s, o = traceCommand("mke2fs -q -F /dev/ram1")
+if s != 0:
+ FAIL("mke2fs returned %i != 0" % s)
for i in range(10):
status, output = traceCommand("xm block-attach %s phy:ram1 hda1 w" %
domain.getName())
diff -r 74737286e9f5 -r bdb8c00ddb85
tools/xm-test/tests/restore/04_restore_withdevices_pos.py
--- a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py Thu Nov 10
11:04:29 2005
+++ b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py Thu Nov 10
11:05:22 2005
@@ -5,13 +5,20 @@
from XmTestLib import *
-domain = XmTestDomain()
+import re
+
+domain = XmTestDomain(extraOpts={"nics":2})
domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+domain.configAddDisk("phy:/dev/ram1", "hdb2", "w")
-s, o = traceCommand("mkfs /dev/ram0")
+s, o = traceCommand("mke2fs -q /dev/ram0")
if s != 0:
- FAIL("Unable to mkfs /dev/ram0 in dom0")
+ FAIL("Unable to mke2fs /dev/ram0 in dom0")
+
+s, o = traceCommand("mke2fs -q /dev/ram1")
+if s != 0:
+ FAIL("Unable to mke2fs /dev/ram1 in dom0")
try:
domain.start()
@@ -22,13 +29,38 @@
console = XmConsole(domain.getName())
console.sendInput("foo")
- run = console.runCmd("mount /dev/hda1 /mnt")
+ run = console.runCmd("mkdir /mnt/a /mnt/b")
+ if run["return"] != 0:
+ FAIL("Unable to mkdir /mnt/a /mnt/b")
+
+ run = console.runCmd("mount /dev/hda1 /mnt/a")
if run["return"] != 0:
FAIL("Unable to mount /dev/hda1")
- run = console.runCmd("echo bar > /mnt/foo")
+ run = console.runCmd("mount /dev/hdb2 /mnt/b")
if run["return"] != 0:
- FAIL("Unable to write to block device!")
+ FAIL("Unable to mount /dev/hdb2")
+
+ run = console.runCmd("echo hda1 > /mnt/a/foo")
+ if run["return"] != 0:
+ FAIL("Unable to write to block device hda1!")
+
+ run = console.runCmd("echo hdb2 > /mnt/b/foo")
+ if run["return"] != 0:
+ FAIL("Unable to write to block device hdb2!")
+
+ run = console.runCmd("ifconfig eth0 169.254.0.1 netmask 255.255.255.0")
+ if run["return"] != 0:
+ FAIL("Unable to configure DomU's eth0")
+
+ run = console.runCmd("ifconfig eth1 169.254.1.1 netmask 255.255.255.0")
+ if run["return"] != 0:
+ FAIL("Unable to configure DomU's eth1")
+
+ run = console.runCmd("ifconfig lo 127.0.0.1")
+ if run["return"] != 0:
+ FAIL("Unable to configure DomU's lo")
+
except ConsoleError, e:
FAIL(str(e))
@@ -63,9 +95,31 @@
if run["return"] != 0:
FAIL("ls failed on restored domain")
- run = console.runCmd("cat /mnt/foo | grep bar")
+ run = console.runCmd("cat /mnt/a/foo")
if run["return"] != 0:
- FAIL("Unable to read from block device")
+ FAIL("Unable to read from block device hda1")
+ if not re.search("hda1", run["output"]):
+ FAIL("Failed to read correct data from hda1")
+
+ run = console.runCmd("cat /mnt/b/foo")
+ if run["return"] != 0:
+ FAIL("Unable to read from block device hdb2")
+ if not re.search("hdb2", run["output"]):
+ FAIL("Failed to read correct data from hdb2")
+
+ run = console.runCmd("ifconfig")
+ if not re.search("eth0", run["output"]):
+ FAIL("DomU's eth0 disappeared")
+ if not re.search("169.254.0.1", run["output"]):
+ FAIL("DomU's eth0 lost its IP")
+ if not re.search("eth1", run["output"]):
+ FAIL("DomU's eth1 disappeared")
+ if not re.search("169.254.1.1", run["output"]):
+ FAIL("DomU's eth1 lost its IP")
+ if not re.search("Loopback", run["output"]):
+ FAIL("DomU's lo disappeared")
+ if not re.search("127.0.0.1", run["output"]):
+ FAIL("DomU's lo lost its IP")
except ConsoleError, e:
FAIL(str(e))
diff -r 74737286e9f5 -r bdb8c00ddb85 tools/xm-test/mergereport
--- /dev/null Thu Nov 10 11:04:29 2005
+++ b/tools/xm-test/mergereport Thu Nov 10 11:05:22 2005
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Dan Smith <danms@xxxxxxxxxx> - 16-Sep-2005
+#
+# This script takes all the .report files in the current
+# directory and generates a summary table, showing the
+# number of PASS, FAIL, XPASS, and XFAIL tests in each
+# report
+
+
+echo " Platform | PASS | FAIL | XPASS | XFAIL |"
+echo "---------------------+------+------+-------+-------+"
+
+for r in *.report; do
+
+ mach=$(basename $r .report)
+ pass=$(cat $r | grep ' PASS' | cut -d : -f 2 | sed 's/ *//')
+ fail=$(cat $r | grep ' FAIL' | cut -d : -f 2 | sed 's/ *//')
+ xpas=$(cat $r | grep ' XPASS' | cut -d : -f 2 | sed 's/ *//')
+ xfal=$(cat $r | grep ' XFAIL' | cut -d : -f 2 | sed 's/ *//')
+
+ printf "%20s | %4s | %4s | %5s | %5s |\n" "$mach" "$pass" \
+ "$fail" "$xpas" "$xfal"
+
+done
diff -r 74737286e9f5 -r bdb8c00ddb85 tools/xm-test/tests/create/log
--- a/tools/xm-test/tests/create/log Thu Nov 10 11:04:29 2005
+++ /dev/null Thu Nov 10 11:05:22 2005
@@ -1,14 +0,0 @@
--- BEGIN XmTest Log @Fri Oct 28 13:00:55 PDT 2005
-*input
-
-
-BusyBox v1.01 (2005.10.27-17:34+0000) Built-in shell (ash)
-Enter 'help' for a list of built-in commands.
-
--sh: can't access tty; job control turned off
-*ls
-CVS etc linuxrc opt sbin var
-bin home lost+found proc tmp
-dev lib mnt root usr
-
--- END XmTest Log
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|