12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/usr/bin/env python3
- # Copyright 2022 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- """Get test health information for a Git repository.
- Example Usage:
- tools/android/test_health/get_test_health.py \
- --output-file ~/test_data.jsonl \
- --git-dir ~/git/chromium/src \
- --test-dir chrome/browser/android
- """
- import argparse
- import logging
- import pathlib
- import time
- import test_health_exporter
- import test_health_extractor
- def main():
- parser = argparse.ArgumentParser(
- description='Gather Java test health information for a Git repository'
- ' and export it as newline-delimited JSON.')
- parser.add_argument('-o',
- '--output-file',
- type=pathlib.Path,
- required=True,
- help='output file path for extracted test health data')
- parser.add_argument('--git-dir',
- type=pathlib.Path,
- required=False,
- help='root directory of the Git repository to read'
- ' (defaults to the Chromium repo)')
- parser.add_argument('--test-dir',
- type=pathlib.Path,
- required=False,
- help='subdirectory containing the tests of interest;'
- ' defaults to the root of the Git repo')
- args = parser.parse_args()
- logging.info('Extracting test health data from Git repo.')
- start_time = time.time()
- test_health_list = test_health_extractor.get_repo_test_health(
- args.git_dir, test_dir=args.test_dir)
- extraction_time = time.time() - start_time
- logging.debug(f'--- Extraction took {extraction_time:.2f} seconds ---')
- logging.info('Exporting test health data to file: ' +
- str(args.output_file))
- export_start_time = time.time()
- test_health_exporter.to_json_file(test_health_list, args.output_file)
- export_time = time.time() - export_start_time
- logging.debug(f'--- Export took {export_time:.2f} seconds ---')
- total_time = time.time() - start_time
- logging.debug(f'--- Took {total_time:.2f} seconds ---')
- if __name__ == '__main__':
- main()
|