mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 15:08:53 +00:00
validate:launcher: Enhance progress reporting using a progress bar
This also allows us to properly report progress on the CI
This commit is contained in:
parent
d543375948
commit
195d3a3edc
1 changed files with 16 additions and 17 deletions
|
@ -127,8 +127,6 @@ class Test(Loggable):
|
||||||
self.optional = False
|
self.optional = False
|
||||||
self.is_parallel = is_parallel
|
self.is_parallel = is_parallel
|
||||||
self.generator = None
|
self.generator = None
|
||||||
# String representation of the test number in the testsuite
|
|
||||||
self.number = ""
|
|
||||||
self.workdir = workdir
|
self.workdir = workdir
|
||||||
self.allow_flakiness = False
|
self.allow_flakiness = False
|
||||||
self.html_log = None
|
self.html_log = None
|
||||||
|
@ -672,19 +670,6 @@ class Test(Loggable):
|
||||||
self.finalize_logfiles()
|
self.finalize_logfiles()
|
||||||
message = None
|
message = None
|
||||||
end = "\n"
|
end = "\n"
|
||||||
if self.result != Result.PASSED:
|
|
||||||
if not retry_on_failure:
|
|
||||||
message = str(self)
|
|
||||||
end = "\n"
|
|
||||||
else:
|
|
||||||
if is_tty():
|
|
||||||
message = "%s %s: %s%s" % (self.number, self.classname, self.result,
|
|
||||||
" (" + self.message + ")" if self.message else "")
|
|
||||||
end = "\r"
|
|
||||||
|
|
||||||
if message is not None:
|
|
||||||
printc(message, color=utils.get_color_for_result(
|
|
||||||
self.result), end=end)
|
|
||||||
|
|
||||||
if self.options.dump_on_failure:
|
if self.options.dump_on_failure:
|
||||||
if self.result is not Result.PASSED:
|
if self.result is not Result.PASSED:
|
||||||
|
@ -1615,6 +1600,7 @@ class _TestsLauncher(Loggable):
|
||||||
self.queue = queue.Queue()
|
self.queue = queue.Queue()
|
||||||
self.jobs = []
|
self.jobs = []
|
||||||
self.total_num_tests = 0
|
self.total_num_tests = 0
|
||||||
|
self.current_progress = -1
|
||||||
self.server = None
|
self.server = None
|
||||||
self.httpsrv = None
|
self.httpsrv = None
|
||||||
self.vfb_server = None
|
self.vfb_server = None
|
||||||
|
@ -1964,6 +1950,20 @@ class _TestsLauncher(Loggable):
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def print_result(self, current_test_num, test, retry_on_failure=False):
|
||||||
|
if test.result != Result.PASSED and not retry_on_failure:
|
||||||
|
printc(str(test), color=utils.get_color_for_result(test.result))
|
||||||
|
|
||||||
|
length = 80
|
||||||
|
progress = int(length * current_test_num // self.total_num_tests)
|
||||||
|
bar = '█' * progress + '-' * (length - progress)
|
||||||
|
if is_tty():
|
||||||
|
printc('\r|%s| [%s/%s]' % (bar, current_test_num, self.total_num_tests), end='\r')
|
||||||
|
else:
|
||||||
|
if progress > self.current_progress:
|
||||||
|
self.current_progress = progress
|
||||||
|
printc('|%s| [%s/%s]' % (bar, current_test_num, self.total_num_tests))
|
||||||
|
|
||||||
def _run_tests(self, running_tests=None, all_alone=False, retry_on_failures=False):
|
def _run_tests(self, running_tests=None, all_alone=False, retry_on_failures=False):
|
||||||
if not self.all_tests:
|
if not self.all_tests:
|
||||||
self.all_tests = self.list_tests()
|
self.all_tests = self.list_tests()
|
||||||
|
@ -2004,8 +2004,6 @@ class _TestsLauncher(Loggable):
|
||||||
while jobs_running != 0:
|
while jobs_running != 0:
|
||||||
test = self.tests_wait()
|
test = self.tests_wait()
|
||||||
jobs_running -= 1
|
jobs_running -= 1
|
||||||
test.number = "[%d / %d] " % (current_test_num,
|
|
||||||
self.total_num_tests)
|
|
||||||
current_test_num += 1
|
current_test_num += 1
|
||||||
res = test.test_end(retry_on_failure=retry_on_failures)
|
res = test.test_end(retry_on_failure=retry_on_failures)
|
||||||
to_report = True
|
to_report = True
|
||||||
|
@ -2021,6 +2019,7 @@ class _TestsLauncher(Loggable):
|
||||||
|
|
||||||
# Not adding to final report if flakiness is tolerated
|
# Not adding to final report if flakiness is tolerated
|
||||||
to_report = not test.allow_flakiness
|
to_report = not test.allow_flakiness
|
||||||
|
self.print_result(current_test_num, test, retry_on_failure=retry_on_failures)
|
||||||
if to_report:
|
if to_report:
|
||||||
self.reporter.after_test(test)
|
self.reporter.after_test(test)
|
||||||
if retry_on_failures:
|
if retry_on_failures:
|
||||||
|
|
Loading…
Reference in a new issue