On Sunday, February 16, 2014 12:54:09 AM Ilia Mirkin wrote: > 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]> > --- > > One problem that I noticed is that this might make the line go over 80 > characters when running in parallel mode. If the line length is longer than > the terminal width (at least with aterm), then the \r trick doesn't work > nearly as well -- the stuff before the wrap stays, and a new line is emitted > every time. Not the end of the world, but not great. IMHO the value of this > feature outweighs the potential for such things. It's easy enough to resize > the term if this happens. > > framework/core.py | 8 +++++--- > framework/log.py | 16 +++++++++++++--- > 2 files changed, 18 insertions(+), 6 deletions(-) > > diff --git a/framework/core.py b/framework/core.py > index ac25917..fc59e3c 100644 > --- a/framework/core.py > +++ b/framework/core.py > @@ -435,6 +435,7 @@ class Test(object): > ''' > > log_current = log.get_current() > + test_result = None > # Run the test > if env.execute: > try: > @@ -462,15 +463,16 @@ 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(): > + test_result = result['result'] > + if 'subtest' in result and len(result['subtest']) > 1: > + for test in result['subtest']: > result['result'] = result['subtest'][test] > json_writer.write_dict_item(os.path.join(path, test), > result) else: > json_writer.write_dict_item(path, result) > else: > log.log() > - log.mark_complete(log_current) > + log.mark_complete(log_current, test_result) > > > class Group(dict): > diff --git a/framework/log.py b/framework/log.py > index 01c3a32..9f2d723 100644 > --- a/framework/log.py > +++ b/framework/log.py > @@ -37,6 +37,11 @@ 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( > @@ -47,12 +52,13 @@ class Log(object): > str(self.__total).zfill(self.__pad)) > > @synchronized_self > - def mark_complete(self, value): > + def mark_complete(self, value, result): > """ Used to mark a test as complete in the log > > Arguments: > value -- the test number to mark complete > - > + result -- the result of the completed test > + > """ > # Mark running complete > assert value in self.__running > @@ -61,6 +67,9 @@ class Log(object): > # increment the number of completed tests > self.__complete += 1 > > + if result: > + self.__summary[result] = self.__summary.get(result, 0) + 1 > + > @synchronized_self > def log(self): > """ Print to the screen > @@ -69,7 +78,8 @@ class Log(object): > over it. > > """ > - sys.stdout.write("{0} {1} \r".format(self._percent(), > self._running())) + sys.stdout.write("{0} {1} {2}\r".format( > + self._percent(), self._summary(), self._running())) > # Need to flush explicitly, otherwise it all gets buffered without > a # newline. > sys.stdout.flush()
I read your comments on V1, and I misunderstood what you were doing. Both versions look fine to me, you have my r-b on whichever you like better: Reviewed-by: Dylan Baker <[email protected]>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
