From 45d1b0eb183d02072f412852693f726744b9f925 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Wed, 9 Oct 2013 12:15:33 -0500 Subject: [PATCH] Move teuthology-coverage's arg parsing to scripts/ Signed-off-by: Zack Cerza --- scripts/coverage.py | 44 +++++++++++++++++++++++++++++++++++++++ setup.py | 2 +- teuthology/coverage.py | 47 ++++++------------------------------------ 3 files changed, 51 insertions(+), 42 deletions(-) create mode 100644 scripts/coverage.py diff --git a/scripts/coverage.py b/scripts/coverage.py new file mode 100644 index 0000000000..3aef9f5374 --- /dev/null +++ b/scripts/coverage.py @@ -0,0 +1,44 @@ +import argparse + +import teuthology.coverage + + +def main(): + teuthology.coverage.main(parse_args()) + + +def parse_args(): + parser = argparse.ArgumentParser(description=""" +Analyze the coverage of a suite of test runs, generating html output with lcov. +""") + parser.add_argument( + '-o', '--lcov-output', + help='the directory in which to store results', + required=True, + ) + parser.add_argument( + '--html-output', + help='the directory in which to store html output', + ) + parser.add_argument( + '--cov-tools-dir', + help='the location of coverage scripts (cov-init and cov-analyze)', + default='../../coverage', + ) + parser.add_argument( + '--skip-init', + help='skip initialization (useful if a run stopped partway through)', + action='store_true', + default=False, + ) + parser.add_argument( + '-v', '--verbose', + help='be more verbose', + action='store_true', + default=False, + ) + parser.add_argument( + 'test_dir', + help='the location of the test results', + ) + return parser.parse_args() diff --git a/setup.py b/setup.py index 75fed91d45..d1b0c56e91 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ setup( 'teuthology-lock = scripts.lock:main', 'teuthology-schedule = scripts.schedule:main', 'teuthology-updatekeys = scripts.updatekeys:main', - 'teuthology-coverage = teuthology.coverage:analyze', + 'teuthology-coverage = scripts.coverage:main', 'teuthology-results = scripts.results:main', 'teuthology-report = scripts.report:main', ], diff --git a/teuthology/coverage.py b/teuthology/coverage.py index a3dede40ec..6acc79c28f 100644 --- a/teuthology/coverage.py +++ b/teuthology/coverage.py @@ -1,4 +1,3 @@ -import argparse from contextlib import closing import logging import os @@ -7,7 +6,7 @@ import subprocess import MySQLdb import yaml -from teuthology import misc as teuthology +from teuthology.misc import read_config log = logging.getLogger(__name__) @@ -89,42 +88,7 @@ def read_coverage(output): return coverage -def analyze(): - parser = argparse.ArgumentParser(description=""" -Analyze the coverage of a suite of test runs, generating html output with lcov. -""") - parser.add_argument( - '-o', '--lcov-output', - help='the directory in which to store results', - required=True, - ) - parser.add_argument( - '--html-output', - help='the directory in which to store html output', - ) - parser.add_argument( - '--cov-tools-dir', - help='the location of coverage scripts (cov-init and cov-analyze)', - default='../../coverage', - ) - parser.add_argument( - '--skip-init', - help='skip initialization (useful if a run stopped partway through)', - action='store_true', - default=False, - ) - parser.add_argument( - '-v', '--verbose', - help='be more verbose', - action='store_true', - default=False, - ) - parser.add_argument( - 'test_dir', - help='the location of the test results', - ) - args = parser.parse_args() - +def main(args): loglevel = logging.INFO if args.verbose: loglevel = logging.DEBUG @@ -132,8 +96,9 @@ Analyze the coverage of a suite of test runs, generating html output with lcov. logging.basicConfig( level=loglevel, ) + log = logging.getLogger(__name__) - teuthology.read_config(args) + read_config(args) handler = logging.FileHandler( filename=os.path.join(args.test_dir, 'coverage.log'), @@ -146,13 +111,13 @@ Analyze the coverage of a suite of test runs, generating html output with lcov. logging.getLogger().addHandler(handler) try: - _analyze(args) + analyze(args) except Exception: log.exception('error generating coverage') raise -def _analyze(args): +def analyze(args): tests = [ f for f in sorted(os.listdir(args.test_dir)) if not f.startswith('.') -- 2.39.5