{# Scripts, for visualization#} {# Render measurement result charts #} {% for test in test_data %} {% if test.status == 'SUCCESS' %} {% for measurement in test.measurements %} {% set chart_elem_start_time_id = test.name + '_' + measurement.name + '_chart_start_time' %} {% set chart_elem_commit_count_id = test.name + '_' + measurement.name + '_chart_commit_count' %} {% include 'measurement_chart.html' %} {% endfor %} {% endif %} {% endfor %} {# Styles #} {{ title }} {% macro poky_link(commit) -%} {{ commit[0:11] }} {%- endmacro %}

Performance Test Report

{# Test metadata #}

General

The table provides an overview of the comparison between two selected commits from the same branch.

{% for key, item in metadata.items() %} {%if key == 'commit' %} {% else %} {% endif %} {% endfor %}
Current commit Comparing with
{{ item.title }}{{ poky_link(item.value) }} {{ poky_link(item.value_old) }}{{ item.value }} {{ item.value_old }}
{# Test result summary #}

Test result summary

The test summary presents a thorough breakdown of each test conducted on the branch, including details such as build time and disk space consumption. Additionally, it gives insights into the average time taken for test execution, along with absolute and relative values for a better understanding.

{% for test in test_data %} {% if test.status == 'SUCCESS' %} {% for measurement in test.measurements %} {% if loop.index == 1 %} {% else %} {# add empty cell in place of the test name#} {% 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 %} {% if measurement.reldiff|abs > 2 %} {% set result_style = result_style + "; font-weight: bold" %} {% endif %} {% endfor %} {% else %} {% endif %} {% endfor %}
Test name Measurement description Mean value Absolute difference Relative difference
{{ test.name }}: {{ test.description }}{{ measurement.description }} {{ measurement.value.mean }} {{ measurement.absdiff_str }} {{ measurement.reldiff_str }}
{{test.status }}
{# Detailed test results #}

Test details

The following section provides details of each test, accompanied by charts representing build time and disk usage over time or by commit number.

{% for test in test_data %}

{{ test.name }}: {{ test.description }}

{% if test.status == 'SUCCESS' %}
{% for measurement in test.measurements %}

{{ measurement.description }}

{{ measurement.value.mean }} {% if measurement.absdiff > 0 %} {% elif measurement.absdiff == measurement.absdiff %} {% else %} {% endif %} {{ measurement.absdiff_str }} ({{measurement.reldiff_str}})
{# Table for trendchart and the statistics #}
{# Linechart #}
{# Measurement statistics #}
Test runs{{ measurement.value.sample_cnt }}
-/+-{{ measurement.value.minus }} / +{{ measurement.value.plus }}
Min{{ measurement.value.min }}
Max{{ measurement.value.max }}
Stdev{{ measurement.value.stdev }}
{# Task and recipe summary from buildstats #} {% if 'buildstats' in measurement %} Task resource usage {# Table of most resource-hungry tasks #} {# Table biggest increase in resource usage #} {# Table biggest decrease in resource usage #}
Number of tasks Top consumers of cputime
{{ measurement.buildstats.tasks.count }} ({{ measurement.buildstats.tasks.change }}) {% for diff in measurement.buildstats.top_consumer|reverse %} {% endfor %}
{{ diff.pkg }}.{{ diff.task }} {{ '%0.0f' % diff.value2 }} s
Biggest increase in cputime Biggest decrease in cputime
{% for diff in measurement.buildstats.top_increase|reverse %} {% endfor %}
{{ diff.pkg }}.{{ diff.task }} {{ '%+0.0f' % diff.absdiff }} s
{% for diff in measurement.buildstats.top_decrease %} {% endfor %}
{{ diff.pkg }}.{{ diff.task }} {{ '%+0.0f' % diff.absdiff }} s
{# Recipe version differences #} {% if measurement.buildstats.ver_diff %}
Recipe version changes
{% for head, recipes in measurement.buildstats.ver_diff.items() %} {% for name, info in recipes|sort %} {% endfor %} {% endfor %}
{{ head }}
{{ name }} {{ info }}
{% else %}
No recipe version changes detected
{% endif %} {% endif %}
{% endfor %}
{# Unsuccessful test #} {% else %} {{ test.status }} {% if test.err_type %}({{ test.err_type }}){% endif %}
{{ test.message }}
{% endif %} {% endfor %}