From a77066751c81f27332cc16c565dff6a45c173b6c Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Mon, 15 May 2017 14:18:43 +0300 Subject: oe-build-perf-report: two verbosity levels for --list Signed-off-by: Markus Lehtonen Signed-off-by: Ross Burton --- scripts/oe-build-perf-report | 45 ++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) (limited to 'scripts/oe-build-perf-report') diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report index 6f0b84f9ec..8190accdc6 100755 --- a/scripts/oe-build-perf-report +++ b/scripts/oe-build-perf-report @@ -82,29 +82,50 @@ def get_test_runs(repo, tag_name, **kwargs): # Return field names and a sorted list of revs return undef_fields, sorted(revs) -def list_test_revs(repo, tag_name, **kwargs): +def list_test_revs(repo, tag_name, verbosity, **kwargs): """Get list of all tested revisions""" fields, revs = get_test_runs(repo, tag_name, **kwargs) ignore_fields = ['tag_number'] + if verbosity < 2: + extra_fields = ['COMMITS', 'TEST RUNS'] + ignore_fields.extend(['commit_number', 'commit']) + else: + extra_fields = ['TEST RUNS'] + print_fields = [i for i, f in enumerate(fields) if f not in ignore_fields] # Sort revs - rows = [[fields[i].upper() for i in print_fields] + ['TEST RUNS']] - prev = [''] * len(revs) + rows = [[fields[i].upper() for i in print_fields] + extra_fields] + + prev = [''] * len(print_fields) + prev_commit = None + commit_cnt = 0 + commit_field = fields.index('commit') for rev in revs: # Only use fields that we want to print - rev = [rev[i] for i in print_fields] + cols = [rev[i] for i in print_fields] + + + if cols != prev: + commit_cnt = 1 + test_run_cnt = 1 + new_row = [''] * (len(print_fields) + len(extra_fields)) - if rev != prev: - new_row = [''] * len(print_fields) + [1] for i in print_fields: - if rev[i] != prev[i]: + if cols[i] != prev[i]: break - new_row[i:-1] = rev[i:] + new_row[i:-len(extra_fields)] = cols[i:] rows.append(new_row) else: - rows[-1][-1] += 1 - prev = rev + if rev[commit_field] != prev_commit: + commit_cnt += 1 + test_run_cnt += 1 + + if verbosity < 2: + new_row[-2] = commit_cnt + new_row[-1] = test_run_cnt + prev = cols + prev_commit = rev[commit_field] print_table(rows) @@ -411,7 +432,7 @@ Examine build performance test results from a Git repository""" help="Verbose logging") parser.add_argument('--repo', '-r', required=True, help="Results repository (local git clone)") - parser.add_argument('--list', '-l', action='store_true', + parser.add_argument('--list', '-l', action='count', help="List available test runs") parser.add_argument('--html', action='store_true', help="Generate report in html format") @@ -447,7 +468,7 @@ def main(argv=None): repo = GitRepo(args.repo) if args.list: - list_test_revs(repo, args.tag_name) + list_test_revs(repo, args.tag_name, args.list) return 0 # Determine hostname which to use -- cgit 1.2.3-korg