Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_runner.py
Show First 20 Lines • Show All 596 Lines • ▼ Show 20 Lines | for test_name in test_list: | ||||
# always execute a test without parameters | # always execute a test without parameters | ||||
tests_with_params.append(test_name) | tests_with_params.append(test_name) | ||||
params = test_params.get(test_name) | params = test_params.get(test_name) | ||||
if params is not None: | if params is not None: | ||||
tests_with_params.extend( | tests_with_params.extend( | ||||
[test_name + " " + " ".join(p) for p in params]) | [test_name + " " + " ".join(p) for p in params]) | ||||
result = [t for t in tests_with_params if get_test_time(t) <= cutoff] | result = [t for t in tests_with_params if get_test_time(t) <= cutoff] | ||||
result.sort(key=lambda x: (-get_test_time(x), x)) | result.sort(key=lambda x: (-get_test_time(x), x)) | ||||
return result | return result | ||||
class RPCCoverage(): | class RPCCoverage(): | ||||
""" | """ | ||||
Coverage reporting utilities for test_runner. | Coverage reporting utilities for test_runner. | ||||
Coverage calculation works by having each test script subprocess write | Coverage calculation works by having each test script subprocess write | ||||
▲ Show 20 Lines • Show All 131 Lines • ▼ Show 20 Lines | def get_merged_timings(self, new_timings): | ||||
merged = list(merged.values()) | merged = list(merged.values()) | ||||
merged.sort(key=lambda t, key=key: t[key]) | merged.sort(key=lambda t, key=key: t[key]) | ||||
return merged | return merged | ||||
def save_timings(self, test_results): | def save_timings(self, test_results): | ||||
# we only save test that have passed - timings for failed test might be | # we only save test that have passed - timings for failed test might be | ||||
# wrong (timeouts or early fails) | # wrong (timeouts or early fails) | ||||
passed_results = [t for t in test_results if t.status == 'Passed'] | passed_results = [t for t in test_results if t.status == 'Passed'] | ||||
new_timings = list(map(lambda t: {'name': t.name, 'time': t.time}, | new_timings = list(map(lambda t: {'name': t.name, 'time': t.time}, | ||||
passed_results)) | passed_results)) | ||||
merged_timings = self.get_merged_timings(new_timings) | merged_timings = self.get_merged_timings(new_timings) | ||||
with open(self.timing_file, 'w', encoding="utf8") as f: | with open(self.timing_file, 'w', encoding="utf8") as f: | ||||
json.dump(merged_timings, f, indent=True) | json.dump(merged_timings, f, indent=True) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
main() | main() |