tp: Create Runner classes
Bug:255535171
Change-Id: I202775792f79b2ef2d1be16b77e8ee0c066e1025
diff --git a/tools/diff_test_trace_processor.py b/tools/diff_test_trace_processor.py
index 7e5be33..cf22882 100755
--- a/tools/diff_test_trace_processor.py
+++ b/tools/diff_test_trace_processor.py
@@ -29,9 +29,8 @@
sys.path.append(os.path.join(ROOT_DIR))
from python.generators.diff_tests.testing import DiffTest
-from python.generators.diff_tests.utils import red, green, end_color
-from python.generators.diff_tests.utils import ctrl_c_handler, find_trace_descriptor
-from python.generators.diff_tests.runner import run_all_tests, read_all_tests
+from python.generators.diff_tests.utils import ctrl_c_handler
+from python.generators.diff_tests.runner import DiffTestSuiteRunner
def main():
@@ -65,54 +64,19 @@
'trace_processor', type=str, help='location of trace processor binary')
args = parser.parse_args()
- query_metric_pattern = re.compile(args.query_metric_filter)
- trace_pattern = re.compile(args.trace_filter)
+ test_runner = DiffTestSuiteRunner(args.query_metric_filter, args.trace_filter,
+ args.trace_processor, args.trace_descriptor,
+ args.no_colors)
+ sys.stderr.write(f"[==========] Running {len(test_runner.tests)} tests.\n")
- tests = read_all_tests(query_metric_pattern, trace_pattern)
- sys.stderr.write(f"[==========] Running {len(tests)} tests.\n")
-
- out_path = os.path.dirname(args.trace_processor)
- if args.trace_descriptor:
- trace_descriptor_path = args.trace_descriptor
- else:
-
- trace_descriptor_path = find_trace_descriptor(out_path)
- if not os.path.exists(trace_descriptor_path):
- trace_descriptor_path = find_trace_descriptor(
- os.path.join(out_path, 'gcc_like_host'))
-
- chrome_extensions = os.path.join(out_path, 'gen', 'protos', 'third_party',
- 'chromium', 'chrome_track_event.descriptor')
- test_extensions = os.path.join(out_path, 'gen', 'protos', 'perfetto', 'trace',
- 'test_extensions.descriptor')
-
- test_run_start = datetime.datetime.now()
- test_failures, perf_data, rebased = run_all_tests(
- trace_descriptor_path, [chrome_extensions, test_extensions], args, tests)
- test_run_end = datetime.datetime.now()
- test_time_ms = int((test_run_end - test_run_start).total_seconds() * 1000)
-
- sys.stderr.write(
- f"[==========] {len(tests)} tests ran. ({test_time_ms} ms total)\n")
- sys.stderr.write(
- f"{green(args.no_colors)}[ PASSED ]{end_color(args.no_colors)} "
- f"{len(tests) - len(test_failures)} tests.\n")
- if len(test_failures) > 0:
- sys.stderr.write(
- f"{red(args.no_colors)}[ FAILED ]{end_color(args.no_colors)} "
- f"{len(test_failures)} tests.\n")
- for failure in test_failures:
- sys.stderr.write(
- f"{red(args.no_colors)}[ FAILED ]{end_color(args.no_colors)} "
- f"{failure}\n")
+ results = test_runner.run_all_tests(args.metrics_descriptor, args.keep_input,
+ args.rebase)
+ sys.stderr.write(results.str(args.no_colors, len(test_runner.tests)))
if args.rebase:
- sys.stderr.write('\n')
- sys.stderr.write(f"{rebased} tests rebased.\n")
- for name in rebased:
- sys.stderr.write(f"[ REBASED ] {name}\n")
+ sys.stderr.write(results.rebase_str())
- if len(test_failures) > 0:
+ if len(results.test_failures) > 0:
return 1
if args.perf_file:
@@ -121,7 +85,7 @@
metrics = []
sorted_data = sorted(
- perf_data,
+ results.perf_data,
key=lambda x: (x.test_type.name, x.trace_path, x.query_path_or_metric))
for perf_args in sorted_data:
trace_short_path = os.path.relpath(perf_args.trace_path, test_dir)