--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/e32test-driver/rtestreport.py Fri Jan 15 09:07:44 2010 +0000
@@ -0,0 +1,78 @@
+#
+# 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/>.
+
+# A simple report generator for the results of running an RTest testsuite.
+#
+
+import sys
+import qemuruntest
+import rtest
+
+class RTestReport(object):
+ def __init__(self, testRunner, reportFileRoot = None):
+ self.testRunner = testRunner
+ self.reportFileRoot = reportFileRoot
+
+ def SummariseErrors(self, file = sys.stdout ):
+ print >> file, "%d errors were detected while running rom %s :" % (len(self.erroredTests), self.parser.GetRomName())
+ for e in self.erroredTests:
+ print >> file, e.GetName()
+ print >> file, "\n"
+
+ def SummariseFailures(self, file = sys.stdout ):
+ print >> file, "%d failures were detected while running rom %s :" % (len(self.failedTests), self.parser.GetRomName())
+ for e in self.failedTests:
+ print >> file, e.GetName()
+ for l in e.ErrorContext():
+ print >> file, "\t%s" %(l)
+ print >> file, "\n"
+
+ def SummarisePassed(self, file = sys.stdout ):
+ print >> file, "The following %d tests passed while running rom %s (times are approximate):" % (len(self.passedTests), self.parser.GetRomName())
+ for e in self.passedTests:
+ print >> file, e.GetName(), " : ", e.GetTimeTaken(), "seconds"
+ print >> file, "\n"
+
+ def OpenReportFile(self):
+ name = self.reportFileRoot
+ if not name:
+ name = self.testRunner.GetReportFileName()
+ return open(name, 'w')
+
+ def GetReportFileName(self):
+ return self.reportFileName
+
+ def PrepareReport(self):
+ self.parser = rtest.RTestParser(self.testRunner)
+ try:
+ self.parser.Parse()
+ except rtest.NoRTestsFound, x:
+ print x
+ sys.exit(1)
+ self.failedTests = filter(rtest.RTest.Failedp, self.parser.GetRTests())
+ self.erroredTests = filter(rtest.RTest.Erroredp, self.parser.GetRTests())
+ self.passedTests = filter(rtest.RTest.Passedp, self.parser.GetRTests())
+
+ def WriteReport(self, file = sys.stdout):
+ self.PrepareReport()
+ print >> file, self.testRunner.GetSummary()
+ self.SummariseErrors(file)
+ self.SummariseFailures(file)
+ self.SummarisePassed(file)
+ return 0
+
+