blob: 7374e98c609e9ff9bc51f3fc1fc5f961ef42f270 [file] [log] [blame]
mblighf01eae12007-10-07 00:22:42 +00001#!/usr/bin/python
2print "Content-type: text/html\n"
3import cgi, cgitb, os, sys, re
4sys.stdout.flush()
5cgitb.enable()
6
7tko = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0])))
8sys.path.insert(0, tko)
9import db, display, frontend
10
11db = db.db()
12
13def main():
mbligh1405f4e2007-11-05 19:26:23 +000014 display.print_main_header()
mblighf01eae12007-10-07 00:22:42 +000015
16 form = cgi.FieldStorage()
17 kernel_idx = form["kernel"].value
18 kernel = frontend.kernel.select(db, {'kernel_idx' : kernel_idx })[0]
19 groups = frontend.group.select(db)
20
21 print_kernel_groups_vs_tests(kernel, groups)
22
23
24def print_kernel_groups_vs_tests(kernel, groups):
25 # first we have to get a list of all run tests across all machines
26 all_tests = set()
mbligh84b9ff12007-11-26 20:51:57 +000027 present_groups = []
mblighf01eae12007-10-07 00:22:42 +000028 for group in groups:
mbligh84b9ff12007-11-26 20:51:57 +000029 tests = group.tests({ 'kernel_idx' : kernel.idx })
30 if tests:
31 present_groups.append(group)
32 for test in tests:
33 all_tests.add(test.testname)
mblighf01eae12007-10-07 00:22:42 +000034 all_tests = list(all_tests)
35
36 print '<h1>%s</h1>' % kernel.printable
37
38 header_row = [ display.box('Test', header=True) ]
mbligh84b9ff12007-11-26 20:51:57 +000039 for group in present_groups:
40 group_name = re.sub('_', '<br>', group.name)
41 header_row.append( display.box(group_name, header=True) )
mblighf01eae12007-10-07 00:22:42 +000042
43 matrix = [header_row]
44 for testname in all_tests:
mbligh55567022007-10-07 00:50:21 +000045 shortname = re.sub(r'kernel.', r'kernel<br>', testname)
46 row = [display.box(shortname)]
mbligh84b9ff12007-11-26 20:51:57 +000047 for group in present_groups:
mbligh55567022007-10-07 00:50:21 +000048 tests = group.tests({ 'kernel_idx' : kernel.idx ,
mbligh84b9ff12007-11-26 20:51:57 +000049 'test' : testname })
mbligh7e92b532007-10-07 01:37:02 +000050 link = 'machine_kernel_test.cgi?'
51 link += 'group=%s&kernel=%s&test=%s' % \
52 (group.name, kernel.idx, testname)
53 box = display.status_count_box(db, tests, link=link)
mblighf01eae12007-10-07 00:22:42 +000054 row.append(box)
55 matrix.append(row)
56 matrix.append(header_row)
57
58 display.print_table(matrix)
59
60main()