tools/e32test-driver/runtests.py
changeset 34 92d87f2e53c2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/e32test-driver/runtests.py	Fri Jan 15 09:07:44 2010 +0000
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Provides 'ui' for running RTests on target and generating a report of the results.
+# Uses qemuruntest to run the tests and rtestreport to generate the results.
+
+import glob
+import sys
+import os.path
+
+from optparse import OptionParser
+
+import qemuruntest
+import rtestreport
+
+def ParseOptions():
+    optParser = OptionParser()
+    optParser.add_option("-b", "--board", action="store", type="string", default="syborg")
+    optParser.add_option("-c", "--cpu", action="store", type="string", default="cortex-a8")
+    optParser.add_option("-d", "--display", action="store_true", dest="displayp")
+    optParser.add_option("-i", "--input", action="store", type="string")
+    optParser.add_option("-o", "--output", action="store", type="string")
+    optParser.add_option("-q", "--qemu", action="store", type="string", dest="qemupath", default="qemu-system-arm.exe")
+    optParser.add_option("-r", "--rom", action="store", type="string", default="syborg.e32test.a8.urel.elf")
+    optParser.add_option("-s", "--summary", action="store", type="string")
+
+    return optParser.parse_args()
+
+def main():
+    errors = False
+    (options, args) = ParseOptions()
+
+    if  not options.input:
+        gl = glob.glob(options.qemupath)
+        if len(gl) == 0:
+            gl = glob.glob(options.qemupath + ".exe")
+
+        if len(gl) == 0:
+            print >> sys.stderr, "ERROR: can't find qemu executable %s" % (options.qemupath)
+            errors = True
+        else:
+            qemupath = gl[0]
+
+        gl = glob.glob(options.rom)
+        if len(gl) == 0:
+            print >> sys.stderr, "ERROR: can't find ROM image %s" % (options.rom)
+            errors = True
+        else:
+            rompath = gl[0]
+
+        if errors:
+            sys.exit(1)
+
+        output = options.output
+        if output == None:
+            output = rompath
+
+        runner = qemuruntest.QemuTestRunner(qemupath, options.cpu, rompath, board = options.board, displayp = options.displayp, dataFile = output)
+        runner.Run()
+    else:
+        gl = glob.glob(options.input)
+        if len(gl) == 0:
+            print >> sys.stderr, "ERROR: can't find input file %s" % (options.input)
+            sys.exit(1)
+
+        input = gl[0]
+        runner = qemuruntest.PseudoRunner(input)
+        
+    testReporter = rtestreport.RTestReport(runner, reportFileRoot = options.summary)
+    reportFile = False
+    status = 1
+    try:
+        reportFile = testReporter.OpenReportFile()
+        status = testReporter.WriteReport(reportFile)
+    except Exception, x:
+        print >> sys.stderr, x
+        status = 1
+        if reportFile:
+            reportFile.close()
+
+    return status
+        
+    
+if __name__ == "__main__":
+    main()