This will display a line that looks like: [00076/11064] fail: 1, pass: 55, skip: 19 Running Test(s): 00075
Signed-off-by: Ilia Mirkin <[email protected]> --- framework/core.py | 11 +++++++---- framework/log.py | 19 +++++++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/framework/core.py b/framework/core.py index ac25917..4bcaa82 100644 --- a/framework/core.py +++ b/framework/core.py @@ -435,6 +435,7 @@ class Test(object): ''' log_current = log.get_current() + counts = {} # Run the test if env.execute: try: @@ -462,15 +463,17 @@ class Test(object): result['traceback'] = \ "".join(traceback.format_tb(sys.exc_info()[2])) - if 'subtest' in result and len(result['subtest'].keys()) > 1: - for test in result['subtest'].keys(): - result['result'] = result['subtest'][test] + if 'subtest' in result and len(result['subtest']) > 1: + for test in result['subtest']: + res = result['result'] = result['subtest'][test] + counts[res] = counts.get(res, 0) + 1 json_writer.write_dict_item(os.path.join(path, test), result) else: + counts[result['result']] = 1 json_writer.write_dict_item(path, result) else: log.log() - log.mark_complete(log_current) + log.mark_complete(log_current, counts) class Group(dict): diff --git a/framework/log.py b/framework/log.py index 01c3a32..ba045da 100644 --- a/framework/log.py +++ b/framework/log.py @@ -37,22 +37,30 @@ class Log(object): self.__running = [] self.__generator = (x for x in xrange(self.__total)) self.__pad = len(str(self.__total)) + self.__summary = {} + + def _summary(self): + return ", ".join("{0}: {1}".format(k, self.__summary[k]) + for k in sorted(self.__summary)) def _running(self): return "Running Test(s): {}".format( " ".join([str(x).zfill(self.__pad) for x in self.__running])) def _percent(self): - return "[{0}/{1}]".format(str(self.__complete).zfill(self.__pad), - str(self.__total).zfill(self.__pad)) + return "[{0}/{1}] {2}".format( + str(self.__complete).zfill(self.__pad), + str(self.__total).zfill(self.__pad), + self._summary()) @synchronized_self - def mark_complete(self, value): + def mark_complete(self, value, counts): """ Used to mark a test as complete in the log Arguments: value -- the test number to mark complete - + counts -- a map from result to count of tests with that result + """ # Mark running complete assert value in self.__running @@ -61,6 +69,9 @@ class Log(object): # increment the number of completed tests self.__complete += 1 + for k, v in counts.iteritems(): + self.__summary[k] = self.__summary.get(k, 0) + v + @synchronized_self def log(self): """ Print to the screen -- 1.8.3.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
