diff -r 1af5c1be89f8 -r 92d87f2e53c2 tools/e32test-driver/runtests.py --- /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 . + +# 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()