If the new summary line is shorter than the previous one, clear the remaining characters.
Signed-off-by: Thomas Wood <[email protected]> --- framework/log.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/framework/log.py b/framework/log.py index cdc3e94..96f757e 100644 --- a/framework/log.py +++ b/framework/log.py @@ -41,6 +41,8 @@ class Log(object): self.__summary_keys = set(['pass', 'fail', 'warn', 'crash', 'skip', 'dmesg-warn', 'dmesg-fail', 'dry-run', 'timeout']) self.__summary = collections.defaultdict(lambda: 0) + self.__verbose = verbose + self.__lastlength = 0 self.__output = "[{percent}] {summary} {running}\r" if verbose: @@ -64,11 +66,19 @@ class Log(object): def __print(self, name, result): """ Do the actual printing """ - sys.stdout.write(self.__output.format(**{'percent': self._percent(), - 'running': self._running(), - 'summary': self._summary(), - 'name': name, - 'result': result})) + output = self.__output.format(**{'percent': self._percent(), + 'running': self._running(), + 'summary': self._summary(), + 'name': name, + 'result': result}) + + length = len(output) + if self.__lastlength > length: + output = output[:-1] + (" " * (self.__lastlength - length)) + '\r' + + self.__lastlength = length + + sys.stdout.write(output) # Need to flush explicitly, otherwise it all gets buffered without a # newline. -- 1.8.5.3 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
