--- /dev/null
+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()
'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',
],
-import argparse
from contextlib import closing
import logging
import os
import MySQLdb
import yaml
-from teuthology import misc as teuthology
+from teuthology.misc import read_config
log = logging.getLogger(__name__)
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
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'),
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('.')