Merge pull request #6358 from str4d/rpc-tests-python-driver
This commit is contained in:
commit
c9b63cc3e5
|
@ -286,9 +286,18 @@ def main():
|
||||||
tests_to_run = split_list[args.rpcgroup]
|
tests_to_run = split_list[args.rpcgroup]
|
||||||
else:
|
else:
|
||||||
tests_to_run = test_list
|
tests_to_run = test_list
|
||||||
run_tests(tests_to_run, config["environment"]["SRCDIR"], config["environment"]["BUILDDIR"], config["environment"]["EXEEXT"], args.jobs, args.coverage, passon_args)
|
all_passed = run_tests(
|
||||||
|
RPCTestHandler,
|
||||||
|
tests_to_run,
|
||||||
|
config["environment"]["SRCDIR"],
|
||||||
|
config["environment"]["BUILDDIR"],
|
||||||
|
config["environment"]["EXEEXT"],
|
||||||
|
args.jobs,
|
||||||
|
args.coverage,
|
||||||
|
passon_args)
|
||||||
|
sys.exit(not all_passed)
|
||||||
|
|
||||||
def run_tests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=False, args=[]):
|
def run_tests(test_handler, test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=False, args=[]):
|
||||||
BOLD = ("","")
|
BOLD = ("","")
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
# primitive formatting on supported
|
# primitive formatting on supported
|
||||||
|
@ -320,7 +329,7 @@ def run_tests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=Fal
|
||||||
time_sum = 0
|
time_sum = 0
|
||||||
time0 = time.time()
|
time0 = time.time()
|
||||||
|
|
||||||
job_queue = RPCTestHandler(jobs, tests_dir, test_list, flags)
|
job_queue = test_handler(jobs, tests_dir, test_list, flags)
|
||||||
|
|
||||||
max_len_name = len(max(test_list, key=len))
|
max_len_name = len(max(test_list, key=len))
|
||||||
results = BOLD[1] + "%s | %s | %s\n\n" % ("TEST".ljust(max_len_name), "PASSED", "DURATION") + BOLD[0]
|
results = BOLD[1] + "%s | %s | %s\n\n" % ("TEST".ljust(max_len_name), "PASSED", "DURATION") + BOLD[0]
|
||||||
|
@ -346,7 +355,7 @@ def run_tests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=Fal
|
||||||
print("Cleaning up coverage data")
|
print("Cleaning up coverage data")
|
||||||
coverage.cleanup()
|
coverage.cleanup()
|
||||||
|
|
||||||
sys.exit(not all_passed)
|
return all_passed
|
||||||
|
|
||||||
class RPCTestHandler:
|
class RPCTestHandler:
|
||||||
"""
|
"""
|
||||||
|
@ -366,6 +375,13 @@ class RPCTestHandler:
|
||||||
self.portseed_offset = int(time.time() * 1000) % 625
|
self.portseed_offset = int(time.time() * 1000) % 625
|
||||||
self.jobs = []
|
self.jobs = []
|
||||||
|
|
||||||
|
def start_test(self, args, stdout, stderr):
|
||||||
|
return subprocess.Popen(
|
||||||
|
args,
|
||||||
|
universal_newlines=True,
|
||||||
|
stdout=stdout,
|
||||||
|
stderr=stderr)
|
||||||
|
|
||||||
def get_next(self):
|
def get_next(self):
|
||||||
while self.num_running < self.num_jobs and self.test_list:
|
while self.num_running < self.num_jobs and self.test_list:
|
||||||
# Add tests
|
# Add tests
|
||||||
|
@ -376,10 +392,9 @@ class RPCTestHandler:
|
||||||
log_stderr = tempfile.SpooledTemporaryFile(max_size=2**16)
|
log_stderr = tempfile.SpooledTemporaryFile(max_size=2**16)
|
||||||
self.jobs.append((t,
|
self.jobs.append((t,
|
||||||
time.time(),
|
time.time(),
|
||||||
subprocess.Popen((self.tests_dir + t).split() + self.flags + port_seed,
|
self.start_test((self.tests_dir + t).split() + self.flags + port_seed,
|
||||||
universal_newlines=True,
|
log_stdout,
|
||||||
stdout=log_stdout,
|
log_stderr),
|
||||||
stderr=log_stderr),
|
|
||||||
log_stdout,
|
log_stdout,
|
||||||
log_stderr))
|
log_stderr))
|
||||||
# Run serial scripts on their own. We always run these first,
|
# Run serial scripts on their own. We always run these first,
|
||||||
|
|
Loading…
Reference in New Issue