tko updates
git-svn-id: http://test.kernel.org/svn/autotest/trunk@667 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/display.py b/tko/display.py
new file mode 100755
index 0000000..7339992
--- /dev/null
+++ b/tko/display.py
@@ -0,0 +1,84 @@
+import os, re, parse, sys, db, frontend
+
+db = db.db() # db.db(debug=True)
+
+
+def print_kernel_machine(kernel, machine):
+ status = None
+ status_word = ''
+ tests = frontend.test.select(db, { 'kernel_idx' : kernel.idx ,
+ 'machine' : machine })
+ for t in tests:
+ if not status or t.status_num < status:
+ status = t.status_num
+ status_word = db.status_word[status]
+ # lines = ['%s %s<br>' % (t.subdir, t.status_word) for t in tests]
+ # print_colored_box(status_word, '\n'.join(lines))
+ link = 'machine_kernel_test.cgi?machine=%s&kernel=%s' % \
+ (machine, kernel.idx)
+ html = '<a href="%s">%s</a>' % (link, status_word)
+ print_colored_box(status_word, html)
+
+
+def print_colored_box(status, html):
+ print "<td bgcolor=%s>" % frontend.status_colour[status]
+ print html
+ print "</td>"
+
+
+def print_machines_row(machines):
+ print "<tr>"
+ print "<th>Version</th>"
+ for machine in machines:
+ print "<th>%s</th>" % machine
+ print "</tr>"
+ print ""
+
+
+def print_machine_vs_kernel(machines):
+ print '<table cellpadding=5 border=1 class="boldtable">'
+ print_machines_row(machines)
+
+ for kernel in frontend.kernel.select(db):
+ print "<tr>"
+ print "<td>%s</td>" % kernel.printable
+ for machine in machines:
+ print_kernel_machine(kernel, machine)
+ print "</tr>"
+ print ""
+
+ print_machines_row(machines)
+ print "</table>"
+
+
+def print_kernel_machines_vs_test(machines, kernel_idx):
+ # first we have to get a list of all run tests across all machines
+ all_tests = {}
+ results = {}
+ for machine in machines:
+ where = { 'kernel_idx' : kernel_idx , 'machine' : machine }
+ tests = frontend.test.select(db, where)
+ results[machine] = tests
+ for test in tests:
+ all_tests[test.subdir] = True
+ test_list = sorted(all_tests.keys())
+
+ kernel = frontend.kernel.select(db, {'kernel_idx' : kernel_idx })[0]
+ print '<h1>%s</h1>' % kernel.printable
+
+ print '<table cellpadding=5 border=1 class="boldtable">'
+ # First let's get the header row
+ print "<tr>"
+ print "<td></td>"
+ for testname in test_list:
+ print "<td>%s</td>" % testname
+ print "</tr>"
+
+ for machine in machines:
+ print "\n<tr>"
+ print "<td>%s</td>" % machine
+ tests = results[machine]
+ for test in tests:
+ print_colored_box(test.status_word, test.status_word)
+ print "</tr>"
+ print '</table>'