Code Review
/
csit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Report: Detailed test results table
[csit.git]
/
resources
/
tools
/
presentation
/
generator_cpta.py
diff --git
a/resources/tools/presentation/generator_cpta.py
b/resources/tools/presentation/generator_cpta.py
index
3003557
..
4017670
100644
(file)
--- a/
resources/tools/presentation/generator_cpta.py
+++ b/
resources/tools/presentation/generator_cpta.py
@@
-169,44
+169,47
@@
def _generate_trending_traces(in_data, job_name, build_info,
"""
data_x = list(in_data.keys())
"""
data_x = list(in_data.keys())
- data_y = list(in_data.values())
+ data_y_pps = list(in_data.values())
+ data_y_mpps = [float(item) / 1e6 for item in data_y_pps]
hover_text = list()
xaxis = list()
hover_text = list()
xaxis = list()
- for idx in data_x:
- date = build_info[job_name][str(idx)][0]
+ for index, key in enumerate(data_x):
+ str_key = str(key)
+ date = build_info[job_name][str_key][0]
hover_str = (u"date: {date}<br>"
hover_str = (u"date: {date}<br>"
- u"value
: {value:,
}<br>"
+ u"value
[Mpps]: {value:.3f
}<br>"
u"{sut}-ref: {build}<br>"
u"csit-ref: mrr-{period}-build-{build_nr}<br>"
u"testbed: {testbed}")
if u"dpdk" in job_name:
hover_text.append(hover_str.format(
date=date,
u"{sut}-ref: {build}<br>"
u"csit-ref: mrr-{period}-build-{build_nr}<br>"
u"testbed: {testbed}")
if u"dpdk" in job_name:
hover_text.append(hover_str.format(
date=date,
- value=
int(in_data[idx])
,
+ value=
data_y_mpps[index]
,
sut=u"dpdk",
sut=u"dpdk",
- build=build_info[job_name][str
(idx)
][1].rsplit(u'~', 1)[0],
+ build=build_info[job_name][str
_key
][1].rsplit(u'~', 1)[0],
period=u"weekly",
period=u"weekly",
- build_nr=
idx
,
- testbed=build_info[job_name][str
(idx)
][2]))
+ build_nr=
str_key
,
+ testbed=build_info[job_name][str
_key
][2]))
elif u"vpp" in job_name:
hover_text.append(hover_str.format(
date=date,
elif u"vpp" in job_name:
hover_text.append(hover_str.format(
date=date,
- value=
int(in_data[idx])
,
+ value=
data_y_mpps[index]
,
sut=u"vpp",
sut=u"vpp",
- build=build_info[job_name][str
(idx)
][1].rsplit(u'~', 1)[0],
+ build=build_info[job_name][str
_key
][1].rsplit(u'~', 1)[0],
period=u"daily",
period=u"daily",
- build_nr=
idx
,
- testbed=build_info[job_name][str
(idx)
][2]))
+ build_nr=
str_key
,
+ testbed=build_info[job_name][str
_key
][2]))
xaxis.append(datetime(int(date[0:4]), int(date[4:6]), int(date[6:8]),
int(date[9:11]), int(date[12:])))
data_pd = OrderedDict()
xaxis.append(datetime(int(date[0:4]), int(date[4:6]), int(date[6:8]),
int(date[9:11]), int(date[12:])))
data_pd = OrderedDict()
- for key, value in zip(xaxis, data_y):
+ for key, value in zip(xaxis, data_y
_pps
):
data_pd[key] = value
data_pd[key] = value
- anomaly_classification, avgs = classify_anomalies(data_pd)
+ anomaly_classification, avgs_pps = classify_anomalies(data_pd)
+ avgs_mpps = [avg_pps / 1e6 for avg_pps in avgs_pps]
anomalies = OrderedDict()
anomalies_colors = list()
anomalies = OrderedDict()
anomalies_colors = list()
@@
-217,20
+220,20
@@
def _generate_trending_traces(in_data, job_name, build_info,
u"progression": 1.0
}
if anomaly_classification:
u"progression": 1.0
}
if anomaly_classification:
- for i
d
x, (key, value) in enumerate(data_pd.items()):
- if anomaly_classification[i
d
x] in \
+ for i
nde
x, (key, value) in enumerate(data_pd.items()):
+ if anomaly_classification[i
nde
x] in \
(u"outlier", u"regression", u"progression"):
(u"outlier", u"regression", u"progression"):
- anomalies[key] = value
+ anomalies[key] = value
/ 1e6
anomalies_colors.append(
anomalies_colors.append(
- anomaly_color[anomaly_classification[i
d
x]])
- anomalies_avgs.append(avgs
[id
x])
+ anomaly_color[anomaly_classification[i
nde
x]])
+ anomalies_avgs.append(avgs
_mpps[inde
x])
anomalies_colors.extend([0.0, 0.5, 1.0])
# Create traces
trace_samples = plgo.Scatter(
x=xaxis,
anomalies_colors.extend([0.0, 0.5, 1.0])
# Create traces
trace_samples = plgo.Scatter(
x=xaxis,
- y=data_y,
+ y=data_y
_mpps
,
mode=u"markers",
line={
u"width": 1
mode=u"markers",
line={
u"width": 1
@@
-251,7
+254,7
@@
def _generate_trending_traces(in_data, job_name, build_info,
if show_trend_line:
trace_trend = plgo.Scatter(
x=xaxis,
if show_trend_line:
trace_trend = plgo.Scatter(
x=xaxis,
- y=avgs,
+ y=avgs
_mpps
,
mode=u"lines",
line={
u"shape": u"linear",
mode=u"lines",
line={
u"shape": u"linear",
@@
-261,7
+264,7
@@
def _generate_trending_traces(in_data, job_name, build_info,
showlegend=False,
legendgroup=name,
name=f"{name}",
showlegend=False,
legendgroup=name,
name=f"{name}",
- text=[f"trend
: {int(avg):,}" for avg in avg
s],
+ text=[f"trend
[Mpps]: {avg:.3f}" for avg in avgs_mpp
s],
hoverinfo=u"text+name"
)
traces.append(trace_trend)
hoverinfo=u"text+name"
)
traces.append(trace_trend)
@@
-353,8
+356,15
@@
def _generate_all_charts(spec, input_data):
f"{graph.get(u'title', u'')}."
)
)
f"{graph.get(u'title', u'')}."
)
)
- data = input_data.filter_data(graph, continue_on_error=True)
- if data is None:
+
+ if graph.get(u"include", None):
+ data = input_data.filter_tests_by_name(
+ graph, continue_on_error=True
+ )
+ else:
+ data = input_data.filter_data(graph, continue_on_error=True)
+
+ if data is None or data.empty:
logging.error(u"No data.")
return dict()
logging.error(u"No data.")
return dict()
@@
-496,7
+506,7
@@
def _generate_all_charts(spec, input_data):
])
name_file = (
])
name_file = (
- f"{spec.cpta[u'output-file']}
-
{graph[u'output-file-name']}"
+ f"{spec.cpta[u'output-file']}
/
{graph[u'output-file-name']}"
f"{spec.cpta[u'output-file-type']}")
logs.append((u"INFO", f" Writing the file {name_file} ..."))
f"{spec.cpta[u'output-file-type']}")
logs.append((u"INFO", f" Writing the file {name_file} ..."))
@@
-549,18
+559,18
@@
def _generate_all_charts(spec, input_data):
anomaly_classifications = dict()
anomaly_classifications = dict()
- # Create the header:
+ # Create the
table
header:
csv_tables = dict()
for job_name in builds_dict:
if csv_tables.get(job_name, None) is None:
csv_tables[job_name] = list()
csv_tables = dict()
for job_name in builds_dict:
if csv_tables.get(job_name, None) is None:
csv_tables[job_name] = list()
- header =
u"Build Number:," + u",".join(builds_dict[job_name]) + u'\n'
+ header =
f"Build Number:,{u','.join(builds_dict[job_name])}\n"
csv_tables[job_name].append(header)
build_dates = [x[0] for x in build_info[job_name].values()]
csv_tables[job_name].append(header)
build_dates = [x[0] for x in build_info[job_name].values()]
- header =
u"Build Date:," + u",".join(build_dates) + u'\n'
+ header =
f"Build Date:,{u','.join(build_dates)}\n"
csv_tables[job_name].append(header)
versions = [x[1] for x in build_info[job_name].values()]
csv_tables[job_name].append(header)
versions = [x[1] for x in build_info[job_name].values()]
- header =
u"Version:," + u",".join(versions) + u'\n'
+ header =
f"Version:,{u','.join(versions)}\n"
csv_tables[job_name].append(header)
for chart in spec.cpta[u"plots"]:
csv_tables[job_name].append(header)
for chart in spec.cpta[u"plots"]:
@@
-576,8
+586,8
@@
def _generate_all_charts(spec, input_data):
# Write the tables:
for job_name, csv_table in csv_tables.items():
# Write the tables:
for job_name, csv_table in csv_tables.items():
- file_name =
spec.cpta[u"output-file"] + u"-" + job_name + u"
-trending"
- with open(f"{file_name}.csv", u"w") as file_handler:
+ file_name =
f"{spec.cpta[u'output-file']}/{job_name}
-trending"
+ with open(f"{file_name}.csv", u"w
t
") as file_handler:
file_handler.writelines(csv_table)
txt_table = None
file_handler.writelines(csv_table)
txt_table = None
@@
-603,7
+613,7
@@
def _generate_all_charts(spec, input_data):
)
line_nr += 1
txt_table.align[u"Build Number:"] = u"l"
)
line_nr += 1
txt_table.align[u"Build Number:"] = u"l"
- with open(f"{file_name}.txt", u"w") as txt_file:
+ with open(f"{file_name}.txt", u"w
t
") as txt_file:
txt_file.write(str(txt_table))
# Evaluate result:
txt_file.write(str(txt_table))
# Evaluate result:
@@
-611,7
+621,7
@@
def _generate_all_charts(spec, input_data):
result = u"PASS"
for job_name, job_data in anomaly_classifications.items():
file_name = \
result = u"PASS"
for job_name, job_data in anomaly_classifications.items():
file_name = \
- f"{spec.cpta[u'output-file']}
-
regressions-{job_name}.txt"
+ f"{spec.cpta[u'output-file']}
/
regressions-{job_name}.txt"
with open(file_name, u'w') as txt_file:
for test_name, classification in job_data.items():
if classification == u"regression":
with open(file_name, u'w') as txt_file:
for test_name, classification in job_data.items():
if classification == u"regression":
@@
-619,7
+629,7
@@
def _generate_all_charts(spec, input_data):
if classification in (u"regression", u"outlier"):
result = u"FAIL"
file_name = \
if classification in (u"regression", u"outlier"):
result = u"FAIL"
file_name = \
- f"{spec.cpta[u'output-file']}
-
progressions-{job_name}.txt"
+ f"{spec.cpta[u'output-file']}
/
progressions-{job_name}.txt"
with open(file_name, u'w') as txt_file:
for test_name, classification in job_data.items():
if classification == u"progression":
with open(file_name, u'w') as txt_file:
for test_name, classification in job_data.items():
if classification == u"progression":