blob: 7339992feddbeaf6476e5cf21f7ce72959587823 [file] [log] [blame]
mblighbfec5222007-09-14 16:58:57 +00001import os, re, parse, sys, db, frontend
2
3db = db.db() # db.db(debug=True)
4
5
6def print_kernel_machine(kernel, machine):
7 status = None
8 status_word = ''
9 tests = frontend.test.select(db, { 'kernel_idx' : kernel.idx ,
10 'machine' : machine })
11 for t in tests:
12 if not status or t.status_num < status:
13 status = t.status_num
14 status_word = db.status_word[status]
15 # lines = ['%s %s<br>' % (t.subdir, t.status_word) for t in tests]
16 # print_colored_box(status_word, '\n'.join(lines))
17 link = 'machine_kernel_test.cgi?machine=%s&kernel=%s' % \
18 (machine, kernel.idx)
19 html = '<a href="%s">%s</a>' % (link, status_word)
20 print_colored_box(status_word, html)
21
22
23def print_colored_box(status, html):
24 print "<td bgcolor=%s>" % frontend.status_colour[status]
25 print html
26 print "</td>"
27
28
29def print_machines_row(machines):
30 print "<tr>"
31 print "<th>Version</th>"
32 for machine in machines:
33 print "<th>%s</th>" % machine
34 print "</tr>"
35 print ""
36
37
38def print_machine_vs_kernel(machines):
39 print '<table cellpadding=5 border=1 class="boldtable">'
40 print_machines_row(machines)
41
42 for kernel in frontend.kernel.select(db):
43 print "<tr>"
44 print "<td>%s</td>" % kernel.printable
45 for machine in machines:
46 print_kernel_machine(kernel, machine)
47 print "</tr>"
48 print ""
49
50 print_machines_row(machines)
51 print "</table>"
52
53
54def print_kernel_machines_vs_test(machines, kernel_idx):
55 # first we have to get a list of all run tests across all machines
56 all_tests = {}
57 results = {}
58 for machine in machines:
59 where = { 'kernel_idx' : kernel_idx , 'machine' : machine }
60 tests = frontend.test.select(db, where)
61 results[machine] = tests
62 for test in tests:
63 all_tests[test.subdir] = True
64 test_list = sorted(all_tests.keys())
65
66 kernel = frontend.kernel.select(db, {'kernel_idx' : kernel_idx })[0]
67 print '<h1>%s</h1>' % kernel.printable
68
69 print '<table cellpadding=5 border=1 class="boldtable">'
70 # First let's get the header row
71 print "<tr>"
72 print "<td></td>"
73 for testname in test_list:
74 print "<td>%s</td>" % testname
75 print "</tr>"
76
77 for machine in machines:
78 print "\n<tr>"
79 print "<td>%s</td>" % machine
80 tests = results[machine]
81 for test in tests:
82 print_colored_box(test.status_word, test.status_word)
83 print "</tr>"
84 print '</table>'