summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2018-03-23 20:58:38 -0300
committerThibault Saunier <tsaunier@igalia.com>2018-03-23 21:04:46 -0300
commita70658a46414dfae2b9942a546e190bd74888f98 (patch)
treef4c57e6670cc7d19ce1baa30e2e45b7d9405b3fe
parentcd1c4eb44d01588e86281fd30176a47b429f53f6 (diff)
launcher: Print test number in the order they finish
Instead of the test index in the list of tests as it is meaningless to the user and feels weird. Also minor fix in the test name display when running with --forever.
-rw-r--r--validate/launcher/baseclasses.py11
-rw-r--r--validate/launcher/utils.py23
2 files changed, 17 insertions, 17 deletions
diff --git a/validate/launcher/baseclasses.py b/validate/launcher/baseclasses.py
index fed5351..d0d2fab 100644
--- a/validate/launcher/baseclasses.py
+++ b/validate/launcher/baseclasses.py
@@ -1561,10 +1561,6 @@ class _TestsLauncher(Loggable):
return True
return False
- def get_test_num(self, test):
- cur_test_num = self.tests.index(test) + 1
- return "[%d / %d] " % (cur_test_num, self.total_num_tests)
-
def server_wrapper(self, ready):
self.server = GstValidateTCPServer(
('localhost', 0), GstValidateListener)
@@ -1656,6 +1652,7 @@ class _TestsLauncher(Loggable):
random.shuffle(tests)
random.shuffle(alone_tests)
+ current_test_num = 1
for num_jobs, tests in [(max_num_jobs, tests), (1, alone_tests)]:
tests_left = list(tests)
for i in range(num_jobs):
@@ -1666,7 +1663,8 @@ class _TestsLauncher(Loggable):
while jobs_running != 0:
test = self.tests_wait()
jobs_running -= 1
- test.number = self.get_test_num(test)
+ test.number = "[%d / %d] " % (current_test_num, self.total_num_tests)
+ current_test_num += 1
res = test.test_end()
self.reporter.after_test(test)
if res != Result.PASSED and (self.options.forever or
@@ -1687,8 +1685,7 @@ class _TestsLauncher(Loggable):
if self.options.forever:
r = 1
while True:
- t = "Running iteration %d" % r
- print("%s\n%s\n%s\n" % ("=" * len(t), t, "=" * len(t)))
+ printc("Running iteration %d" % r, title=True)
if not self._run_tests():
break
diff --git a/validate/launcher/utils.py b/validate/launcher/utils.py
index 5eea1cf..b0b1824 100644
--- a/validate/launcher/utils.py
+++ b/validate/launcher/utils.py
@@ -102,6 +102,7 @@ def desactivate_colors():
Colors.FAIL = ''
Colors.ENDC = ''
+
if not supports_ansi_colors():
desactivate_colors()
@@ -145,8 +146,11 @@ def get_color_for_result(result):
return color
-last_cariage_return_len = 0
+last_carriage_return_len = 0
+
+
def printc(message, color="", title=False, title_char='', end="\n"):
+ global last_carriage_return_len
if title or title_char:
length = 0
for l in message.split("\n"):
@@ -155,10 +159,13 @@ def printc(message, color="", title=False, title_char='', end="\n"):
if length == 0:
length = len(message)
+ needed_spaces = ' ' * max(0, last_carriage_return_len - length)
if title is True:
- message = length * "=" + "\n" + str(message) + "\n" + length * '='
+ message = length * "=" + needed_spaces + "\n" \
+ + str(message) + "\n" + length * '='
else:
- message = str(message) + "\n" + length * title_char
+ message = str(message) + needed_spaces + "\n" + \
+ length * title_char
if hasattr(message, "result") and color == '':
color = get_color_for_result(message.result)
@@ -166,13 +173,8 @@ def printc(message, color="", title=False, title_char='', end="\n"):
if not sys.stdout.isatty():
end = "\n"
- global last_carriage_return_len
- if end == "\r":
- message += ' ' * max(0, last_carriage_return_len - len(message))
- last_carriage_return_len = len(message)
- else:
- last_carriage_return_len = 0
-
+ message += ' ' * max(0, last_carriage_return_len - len(message))
+ last_carriage_return_len = len(message) if end == "\r" else 0
sys.stdout.write(color + str(message) + Colors.ENDC + end)
sys.stdout.flush()
@@ -267,6 +269,7 @@ def get_data_file(subdir, name):
def gsttime_from_tuple(stime):
return int((int(stime[0]) * 3600 + int(stime[1]) * 60 + int(stime[2])) * GST_SECOND + int(stime[3]))
+
timeregex = re.compile(r'(?P<_0>.+):(?P<_1>.+):(?P<_2>.+)\.(?P<_3>.+)')