mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

The javascript console log messages are used in scraping, when converting an html test report to html email. Before this patch a console message indicating that all charts have been drawn was not correctly sent if the last test failed (or didn't have chart data for some other reason) which, in turn, caused oe-build-perf-report-email.py script to fail with a timeout. (From OE-Core rev: 79b90ae02257002ea831a48f6798794b7711c1f8) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
207 lines
6.0 KiB
HTML
207 lines
6.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
{# Scripts, for visualization#}
|
|
<!--START-OF-SCRIPTS-->
|
|
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
|
<script type="text/javascript">
|
|
google.charts.load('current', {'packages':['corechart']});
|
|
var chartsDrawing = 0;
|
|
</script>
|
|
|
|
{# Render measurement result charts #}
|
|
{% for test in test_data %}
|
|
{% if test.status == 'SUCCESS' %}
|
|
{% for measurement in test.measurements %}
|
|
{% set chart_elem_id = test.name + '_' + measurement.name + '_chart' %}
|
|
{% include 'measurement_chart.html' %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
<!--END-OF-SCRIPTS-->
|
|
|
|
{# Styles #}
|
|
<style>
|
|
.meta-table {
|
|
font-size: 14px;
|
|
text-align: left;
|
|
border-collapse: collapse;
|
|
}
|
|
.meta-table tr:nth-child(even){background-color: #f2f2f2}
|
|
meta-table th, .meta-table td {
|
|
padding: 4px;
|
|
}
|
|
.summary {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
text-align: left;
|
|
border-collapse: collapse;
|
|
}
|
|
summary th, .meta-table td {
|
|
padding: 4px;
|
|
}
|
|
.measurement {
|
|
padding: 8px 0px 8px 8px;
|
|
border: 2px solid #f0f0f0;
|
|
margin-bottom: 10px;
|
|
}
|
|
.details {
|
|
margin: 0;
|
|
font-size: 12px;
|
|
text-align: left;
|
|
border-collapse: collapse;
|
|
}
|
|
.details th {
|
|
font-weight: normal;
|
|
padding-right: 8px;
|
|
}
|
|
.preformatted {
|
|
font-family: monospace;
|
|
white-space: pre-wrap;
|
|
background-color: #f0f0f0;
|
|
margin-left: 10px;
|
|
}
|
|
hr {
|
|
color: #f0f0f0;
|
|
}
|
|
h2 {
|
|
font-size: 20px;
|
|
margin-bottom: 0px;
|
|
color: #707070;
|
|
}
|
|
h3 {
|
|
font-size: 16px;
|
|
margin: 0px;
|
|
color: #707070;
|
|
}
|
|
</style>
|
|
|
|
<title>{{ title }}</title>
|
|
</head>
|
|
|
|
{% macro poky_link(commit) -%}
|
|
<a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?id={{ commit }}">{{ commit[0:11] }}</a>
|
|
{%- endmacro %}
|
|
|
|
<body><div style="width: 700px">
|
|
{# Test metadata #}
|
|
<h2>General</h2>
|
|
<hr>
|
|
<table class="meta-table" style="width: 100%">
|
|
<tr>
|
|
<th></th>
|
|
<th>Current commit</th>
|
|
<th>Comparing with</th>
|
|
</tr>
|
|
{% for key, item in metadata.items() %}
|
|
<tr>
|
|
<th>{{ item.title }}</th>
|
|
{%if key == 'commit' %}
|
|
<td>{{ poky_link(item.value) }}</td>
|
|
<td>{{ poky_link(item.value_old) }}</td>
|
|
{% else %}
|
|
<td>{{ item.value }}</td>
|
|
<td>{{ item.value_old }}</td>
|
|
{% endif %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
|
|
{# Test result summary #}
|
|
<h2>Test result summary</h2>
|
|
<hr>
|
|
<table class="summary" style="width: 100%">
|
|
{% for test in test_data %}
|
|
{% if loop.index is even %}
|
|
{% set row_style = 'style="background-color: #f2f2f2"' %}
|
|
{% else %}
|
|
{% set row_style = 'style="background-color: #ffffff"' %}
|
|
{% endif %}
|
|
<tr {{ row_style }}><td>{{ test.name }}: {{ test.description }}</td>
|
|
{% if test.status == 'SUCCESS' %}
|
|
{% for measurement in test.measurements %}
|
|
{# add empty cell in place of the test name#}
|
|
{% if loop.index > 1 %}<td></td>{% endif %}
|
|
{% if measurement.absdiff > 0 %}
|
|
{% set result_style = "color: red" %}
|
|
{% elif measurement.absdiff == measurement.absdiff %}
|
|
{% set result_style = "color: green" %}
|
|
{% else %}
|
|
{% set result_style = "color: orange" %}
|
|
{%endif %}
|
|
<td>{{ measurement.description }}</td>
|
|
<td style="font-weight: bold">{{ measurement.value.mean }}</td>
|
|
<td style="{{ result_style }}">{{ measurement.absdiff_str }}</td>
|
|
<td style="{{ result_style }}">{{ measurement.reldiff }}</td>
|
|
</tr><tr {{ row_style }}>
|
|
{% endfor %}
|
|
{% else %}
|
|
<td style="font-weight: bold; color: red;">{{test.status }}</td>
|
|
<td></td> <td></td> <td></td> <td></td>
|
|
{% endif %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
|
|
{# Detailed test results #}
|
|
{% for test in test_data %}
|
|
<h2>{{ test.name }}: {{ test.description }}</h2>
|
|
<hr>
|
|
{% if test.status == 'SUCCESS' %}
|
|
{% for measurement in test.measurements %}
|
|
<div class="measurement">
|
|
<h3>{{ measurement.description }}</h3>
|
|
<div style="font-weight:bold;">
|
|
<span style="font-size: 23px;">{{ measurement.value.mean }}</span>
|
|
<span style="font-size: 20px; margin-left: 12px">
|
|
{% if measurement.absdiff > 0 %}
|
|
<span style="color: red">
|
|
{% elif measurement.absdiff == measurement.absdiff %}
|
|
<span style="color: green">
|
|
{% else %}
|
|
<span style="color: orange">
|
|
{% endif %}
|
|
{{ measurement.absdiff_str }} ({{measurement.reldiff}})
|
|
</span></span>
|
|
</div>
|
|
<table style="width: 100%">
|
|
<tr>
|
|
<td style="width: 75%">
|
|
{# Linechart #}
|
|
<div id="{{ test.name }}_{{ measurement.name }}_chart"></div>
|
|
</td>
|
|
<td>
|
|
{# Measurement statistics #}
|
|
<table class="details">
|
|
<tr>
|
|
<th>Test runs</th><td>{{ measurement.value.sample_cnt }}</td>
|
|
</tr><tr>
|
|
<th>-/+</th><td>-{{ measurement.value.minus }} / +{{ measurement.value.plus }}</td>
|
|
</tr><tr>
|
|
<th>Min</th><td>{{ measurement.value.min }}</td>
|
|
</tr><tr>
|
|
<th>Max</th><td>{{ measurement.value.max }}</td>
|
|
</tr><tr>
|
|
<th>Stdev</th><td>{{ measurement.value.stdev }}</td>
|
|
</tr><tr>
|
|
<th><div id="{{ test.name }}_{{ measurement.name }}_chart_png"></div></th>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
{% endfor %}
|
|
{# Unsuccessful test #}
|
|
{% else %}
|
|
<span style="font-size: 150%; font-weight: bold; color: red;">{{ test.status }}
|
|
{% if test.err_type %}<span style="font-size: 75%; font-weight: normal">({{ test.err_type }})</span>{% endif %}
|
|
</span>
|
|
<div class="preformatted">{{ test.message }}</div>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</div></body>
|
|
</html>
|
|
|