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

[Xen-changelog] merge



# 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


 


Rackspace

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