diff options
author | fanquake <fanquake@gmail.com> | 2024-03-14 09:55:10 +0000 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2024-03-14 10:09:00 +0000 |
commit | 6850d721748c45c76946a69af44909d7275f4a83 (patch) | |
tree | a479db92ec7e82cda130bacfe7d075429f1233db /test/functional | |
parent | 55c6323434428ff00872b54692a22fa20eed393c (diff) | |
parent | 0831b54dfca1b9e728295fff500215da14589fc0 (diff) | |
download | bitcoin-6850d721748c45c76946a69af44909d7275f4a83.tar.xz |
Merge bitcoin/bitcoin#29497: test: simplify test_runner.py
0831b54dfca1b9e728295fff500215da14589fc0 test: simplify test_runner.py (tdb3)
Pull request description:
Implements the simplifications to test_runner.py proposed by sipa in PR #23995.
Remove the num_running variable as it can be implied by the length of the jobs list.
Remove the i variable as it can be implied by the length of the test_results list.
Instead of counting results to determine if finished, make the queue object itself
responsible (by looking at running jobs and jobs left).
ACKs for top commit:
mzumsande:
re-ACK 0831b54
davidgumberg:
reACK https://github.com/bitcoin/bitcoin/commit/0831b54dfca1b9e728295fff500215da14589fc0
marcofleon:
re-ACK 0831b54dfca1b9e728295fff500215da14589fc0
Tree-SHA512: e5473e68d49cd779b29d97635329283ae7195412cb1e92461675715ca7eedb6519a1a93ba28d40ca6f015d270f7bcd3e77cef279d9cd655155ab7805b49638f1
Diffstat (limited to 'test/functional')
-rwxr-xr-x | test/functional/test_runner.py | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py index 59931bc208..9325b0a250 100755 --- a/test/functional/test_runner.py +++ b/test/functional/test_runner.py @@ -614,14 +614,12 @@ def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage= max_len_name = len(max(test_list, key=len)) test_count = len(test_list) all_passed = True - i = 0 - while i < test_count: + while not job_queue.done(): if failfast and not all_passed: break for test_result, testdir, stdout, stderr, skip_reason in job_queue.get_next(): test_results.append(test_result) - i += 1 - done_str = "{}/{} - {}{}{}".format(i, test_count, BOLD[1], test_result.name, BOLD[0]) + done_str = f"{len(test_results)}/{test_count} - {BOLD[1]}{test_result.name}{BOLD[0]}" if test_result.status == "Passed": logging.debug("%s passed, Duration: %s s" % (done_str, test_result.time)) elif test_result.status == "Skipped": @@ -706,14 +704,15 @@ class TestHandler: self.tmpdir = tmpdir self.test_list = test_list self.flags = flags - self.num_running = 0 self.jobs = [] self.use_term_control = use_term_control + def done(self): + return not (self.jobs or self.test_list) + def get_next(self): - while self.num_running < self.num_jobs and self.test_list: + while len(self.jobs) < self.num_jobs and self.test_list: # Add tests - self.num_running += 1 test = self.test_list.pop(0) portseed = len(self.test_list) portseed_arg = ["--portseed={}".format(portseed)] @@ -757,7 +756,6 @@ class TestHandler: skip_reason = re.search(r"Test Skipped: (.*)", stdout).group(1) else: status = "Failed" - self.num_running -= 1 self.jobs.remove(job) if self.use_term_control: clearline = '\r' + (' ' * dot_count) + '\r' |