mirror of
https://git.yoctoproject.org/poky
synced 2026-09-13 09:49:32 +02:00
scripts/resulttool/report: Enable report to use regression_map
By default, report will use the store_map to generate the key to reference each result set. In some situation when using store_map with multiple set of tests sharing similar test configurations, the report will only showing partial result set for results that having identical result_id (use of multiconfig to run tests where it generate identical result_id). Enable report to have the option to use the regression_map (optional) instead of the default store_map, where it will take larger set of configurations to generate the key to reference each result set, this will prevent the report from only showing partial result set. (From OE-Core rev: 8577abce6feb1f529537da554d39e86a5b05ca2d) Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
00736266f2
commit
3adefee2a1
@@ -207,8 +207,11 @@ class ResultsTextReport(object):
|
|||||||
maxlen=maxlen)
|
maxlen=maxlen)
|
||||||
print(output)
|
print(output)
|
||||||
|
|
||||||
def view_test_report(self, logger, source_dir, branch, commit, tag):
|
def view_test_report(self, logger, source_dir, branch, commit, tag, use_regression_map):
|
||||||
test_count_reports = []
|
test_count_reports = []
|
||||||
|
configmap = resultutils.store_map
|
||||||
|
if use_regression_map:
|
||||||
|
configmap = resultutils.regression_map
|
||||||
if commit:
|
if commit:
|
||||||
if tag:
|
if tag:
|
||||||
logger.warning("Ignoring --tag as --commit was specified")
|
logger.warning("Ignoring --tag as --commit was specified")
|
||||||
@@ -216,12 +219,12 @@ class ResultsTextReport(object):
|
|||||||
repo = GitRepo(source_dir)
|
repo = GitRepo(source_dir)
|
||||||
revs = gitarchive.get_test_revs(logger, repo, tag_name, branch=branch)
|
revs = gitarchive.get_test_revs(logger, repo, tag_name, branch=branch)
|
||||||
rev_index = gitarchive.rev_find(revs, 'commit', commit)
|
rev_index = gitarchive.rev_find(revs, 'commit', commit)
|
||||||
testresults = resultutils.git_get_result(repo, revs[rev_index][2])
|
testresults = resultutils.git_get_result(repo, revs[rev_index][2], configmap=configmap)
|
||||||
elif tag:
|
elif tag:
|
||||||
repo = GitRepo(source_dir)
|
repo = GitRepo(source_dir)
|
||||||
testresults = resultutils.git_get_result(repo, [tag])
|
testresults = resultutils.git_get_result(repo, [tag], configmap=configmap)
|
||||||
else:
|
else:
|
||||||
testresults = resultutils.load_resultsdata(source_dir)
|
testresults = resultutils.load_resultsdata(source_dir, configmap=configmap)
|
||||||
for testsuite in testresults:
|
for testsuite in testresults:
|
||||||
for resultid in testresults[testsuite]:
|
for resultid in testresults[testsuite]:
|
||||||
skip = False
|
skip = False
|
||||||
@@ -248,7 +251,7 @@ class ResultsTextReport(object):
|
|||||||
|
|
||||||
def report(args, logger):
|
def report(args, logger):
|
||||||
report = ResultsTextReport()
|
report = ResultsTextReport()
|
||||||
report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag)
|
report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag, args.use_regression_map)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def register_commands(subparsers):
|
def register_commands(subparsers):
|
||||||
@@ -263,3 +266,6 @@ def register_commands(subparsers):
|
|||||||
parser_build.add_argument('--commit', help="Revision to report")
|
parser_build.add_argument('--commit', help="Revision to report")
|
||||||
parser_build.add_argument('-t', '--tag', default='',
|
parser_build.add_argument('-t', '--tag', default='',
|
||||||
help='source_dir is a git repository, report on the tag specified from that repository')
|
help='source_dir is a git repository, report on the tag specified from that repository')
|
||||||
|
parser_build.add_argument('-m', '--use_regression_map', action='store_true',
|
||||||
|
help='instead of the default "store_map", use the "regression_map" for report')
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, p
|
|||||||
with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f:
|
with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f:
|
||||||
f.write(sectionlog)
|
f.write(sectionlog)
|
||||||
|
|
||||||
def git_get_result(repo, tags):
|
def git_get_result(repo, tags, configmap=store_map):
|
||||||
git_objs = []
|
git_objs = []
|
||||||
for tag in tags:
|
for tag in tags:
|
||||||
files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines()
|
files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines()
|
||||||
@@ -200,7 +200,7 @@ def git_get_result(repo, tags):
|
|||||||
# Optimize by reading all data with one git command
|
# Optimize by reading all data with one git command
|
||||||
results = {}
|
results = {}
|
||||||
for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])):
|
for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])):
|
||||||
append_resultsdata(results, obj)
|
append_resultsdata(results, obj, configmap=configmap)
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user