[llvm-commits] [zorg] r147227 - in /zorg/trunk/lnt/lnt/server: reporting/runs.py ui/templates/v4_utils.html
Daniel Dunbar
daniel at zuster.org
Fri Dec 23 16:51:31 PST 2011
Author: ddunbar
Date: Fri Dec 23 18:51:31 2011
New Revision: 147227
URL: http://llvm.org/viewvc/llvm-project?rev=147227&view=rev
Log:
[lnt/v0.4] lnt.server.ui/v4: Finish off reports for V4 DBs.
Modified:
zorg/trunk/lnt/lnt/server/reporting/runs.py
zorg/trunk/lnt/lnt/server/ui/templates/v4_utils.html
Modified: zorg/trunk/lnt/lnt/server/reporting/runs.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/server/reporting/runs.py?rev=147227&r1=147226&r2=147227&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/server/reporting/runs.py (original)
+++ zorg/trunk/lnt/lnt/server/reporting/runs.py Fri Dec 23 18:51:31 2011
@@ -4,8 +4,10 @@
import StringIO
import os
+import urllib
import lnt.server.reporting.analysis
+import lnt.server.ui.util
from lnt.db import runinfo
def generate_run_report(run, baseurl, only_html_body = False,
@@ -74,7 +76,7 @@
else:
bucket = unchanged_tests
- bucket.append((name, cr))
+ bucket.append((name, cr, test_id))
test_results.append(
(field, (('New Failures', new_failures, False),
@@ -92,7 +94,7 @@
result['test_results'] = [{ 'pset' : (), 'results' : pset_results}]
for field,field_results in test_results:
for _,bucket,_ in field_results:
- for name,cr in bucket:
+ for name,cr,_ in bucket:
# FIXME: Include additional information about performance
# changes.
pset_results.append(("%s.%s" % (name, field.name),
@@ -109,7 +111,7 @@
if baseurl[-1] == '/':
baseurl = baseurl[:-1]
- report_url = """%s/%d/""" % (baseurl, run.id)
+ report_url = """%s/%d""" % (baseurl, run.id)
print >>report, report_url
print >>report, """Nickname: %s:%d""" % (machine.name, machine.id)
if 'name' in machine_parameters:
@@ -175,10 +177,10 @@
compare_to.machine.id)
# Generate the summary of the changes.
- total_changes = sum(len(bucket)
- for _,field_results in test_results
- for name,bucket,_ in field_results
- if name != 'Unchanged Tests')
+ num_total_changes = sum(len(bucket)
+ for _,field_results in test_results
+ for name,bucket,_ in field_results
+ if name != 'Unchanged Tests')
print >>report, """==============="""
print >>report, """Tests Summary"""
@@ -208,6 +210,19 @@
</table>
""" % num_total_tests
+ # Add the changes detail.
+ if num_total_changes:
+ print >>report, """=============="""
+ print >>report, """Changes Detail"""
+ print >>report, """=============="""
+ print >>html_report, """
+<p>
+<h3>Changes Detail</h3>"""
+
+ for field,field_results in test_results:
+ _add_report_changes_detail(field, field_results, report,
+ html_report, report_url)
+
# Finish up the HTML report (wrapping the body, if necessary).
html_report = html_report.getvalue()
if not only_html_body:
@@ -232,3 +247,64 @@
</html>""" % locals()
return subject, report.getvalue(), html_report
+
+def _add_report_changes_detail(field, field_results, report, html_report,
+ report_url):
+ field_display_name = { "compile_time" : "Compile Time",
+ "execution_time" : "Execution Time" }.get(field.name)
+ for bucket_name,bucket,show_perf in field_results:
+ if not bucket or bucket_name == 'Unchanged Tests':
+ continue
+
+ print >>report, "%s - %s" % (bucket_name, field_display_name)
+ print >>report, '-' * (len(bucket_name) + len(field_display_name) + 3)
+ print >>html_report, """
+ <p>
+ <table class="sortable">
+ <tr><th>%s - %s </th>""" % (bucket_name, field_display_name)
+ if show_perf:
+ print >>html_report, """
+ <th>Δ</th><th>Previous</th><th>Current</th> <th>σ</th>"""
+ print >>html_report, """</tr>"""
+
+ # If we aren't displaying any performance results, just write out the
+ # list of tests and continue.
+ if not show_perf:
+ for name,cr,_ in bucket:
+ print >>report, ' %s' % (name,)
+ print >>html_report, """
+ <tr><td>%s</td></tr>""" % (name,)
+ print >>report
+ print >>html_report, """
+ </table>"""
+ continue
+
+ bucket.sort(key = lambda (_,cr,__): -abs(cr.pct_delta))
+
+ for name,cr,test_id in bucket:
+ if cr.stddev is not None:
+ stddev_value = ', std. dev.: %.4f' % cr.stddev
+ else:
+ stddev_value = ''
+ print >>report, (' %s: %.2f%% (%.4f => %.4f%s)') % (
+ name, 100. * cr.pct_delta,
+ cr.previous, cr.current, stddev_value)
+
+ # Link the regression to the chart of its performance.
+ form_data = urllib.urlencode([('test.%d' % test_id, 'on')])
+ linked_name = '<a href="%s?%s">%s</a>' % (
+ os.path.join(report_url, "graph"),
+ form_data, name)
+
+ pct_value = lnt.server.ui.util.PctCell(cr.pct_delta).render()
+ if cr.stddev is not None:
+ stddev_value = "%.4f" % cr.stddev
+ else:
+ stddev_value = "-"
+
+ print >>html_report, """
+ <tr><td>%s</td>%s<td>%.4f</td><td>%.4f</td><td>%s</td></tr>""" %(
+ linked_name, pct_value, cr.previous, cr.current, stddev_value)
+ print >>report
+ print >>html_report, """
+ </table>"""
Modified: zorg/trunk/lnt/lnt/server/ui/templates/v4_utils.html
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/server/ui/templates/v4_utils.html?rev=147227&r1=147226&r2=147227&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/server/ui/templates/v4_utils.html (original)
+++ zorg/trunk/lnt/lnt/server/ui/templates/v4_utils.html Fri Dec 23 18:51:31 2011
@@ -29,7 +29,6 @@
<table width="100%%" border=1>
<tr>
<td valign="top" width="200">
- <a href="..">Homepage</a>
<h4>Machine:</h4>
<a href="{{ v4_url_for('v4_machine', id=machine.id) }}">{{
machine.name}}:{{machine.id}}</a>
More information about the llvm-commits
mailing list