diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 45cde00037f..07677d5b823 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -251,7 +251,7 @@ stop_time = None # def run_tests_array(all_tests, suite, suite_dir, suite_tmp_dir, run_total): def run_tests_array(all_tests_with_params): - all_tests, suite, suite_dir, suite_tmp_dir, run_total = all_tests_with_params + all_tests, suite, suite_dir, suite_tmp_dir = all_tests_with_params global exit_code global SERVER_DIED global stop_time @@ -698,6 +698,7 @@ def main(args): all_tests = [t for t in all_tests if any([re.search(r, t) for r in args.test])] all_tests.sort(key=key_func) + jobs = args.jobs parallel_tests = [] sequential_tests = [] for test in all_tests: @@ -706,35 +707,32 @@ def main(args): else: parallel_tests.append(test) - print("Found", len(parallel_tests), "parallel tests and", len(sequential_tests), "sequential tests") - run_n, run_total = args.parallel.split('/') - run_n = float(run_n) - run_total = float(run_total) - tests_n = len(parallel_tests) - if run_total > tests_n: - run_total = tests_n - if run_n > run_total: - continue + if jobs > 1 and len(parallel_tests) > 0: + print("Found", len(parallel_tests), "parallel tests and", len(sequential_tests), "sequential tests") + run_n, run_total = args.parallel.split('/') + run_n = float(run_n) + run_total = float(run_total) + tests_n = len(parallel_tests) + if run_total > tests_n: + run_total = tests_n - jobs = args.jobs - if jobs > tests_n: - jobs = tests_n - if jobs > run_total: - run_total = jobs + if jobs > tests_n: + jobs = tests_n + if jobs > run_total: + run_total = jobs - batch_size = len(parallel_tests) // jobs - parallel_tests_array = [] - for i in range(0, len(parallel_tests), batch_size): - parallel_tests_array.append((parallel_tests[i:i+batch_size], suite, suite_dir, suite_tmp_dir, run_total)) + batch_size = len(parallel_tests) // jobs + parallel_tests_array = [] + for i in range(0, len(parallel_tests), batch_size): + parallel_tests_array.append((parallel_tests[i:i+batch_size], suite, suite_dir, suite_tmp_dir)) - if jobs > 1: with closing(multiprocessing.Pool(processes=jobs)) as pool: pool.map(run_tests_array, parallel_tests_array) - run_tests_array((sequential_tests, suite, suite_dir, suite_tmp_dir, run_total)) + run_tests_array((sequential_tests, suite, suite_dir, suite_tmp_dir)) total_tests_run += len(sequential_tests) + len(parallel_tests) else: - run_tests_array((all_tests, suite, suite_dir, suite_tmp_dir, run_total)) + run_tests_array((all_tests, suite, suite_dir, suite_tmp_dir)) total_tests_run += len(all_tests) if args.hung_check: