mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | print "Content-type: text/html\n" |
| 3 | import cgi, cgitb, os, sys, re |
| 4 | sys.stdout.flush() |
| 5 | cgitb.enable() |
| 6 | |
| 7 | tko = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0]))) |
| 8 | sys.path.insert(0, tko) |
| 9 | import db, display, frontend |
| 10 | |
| 11 | db = db.db() |
| 12 | |
| 13 | def main(): |
mbligh | 1405f4e | 2007-11-05 19:26:23 +0000 | [diff] [blame] | 14 | display.print_main_header() |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 15 | |
| 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 | |
| 24 | def 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() |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 27 | present_groups = [] |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 28 | for group in groups: |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 29 | 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) |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 34 | all_tests = list(all_tests) |
apw | 8fba91e | 2007-12-18 10:43:23 +0000 | [diff] [blame] | 35 | all_tests.sort() |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 36 | |
| 37 | print '<h1>%s</h1>' % kernel.printable |
| 38 | |
| 39 | header_row = [ display.box('Test', header=True) ] |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 40 | for group in present_groups: |
mbligh | 8174ce3 | 2007-11-30 17:57:55 +0000 | [diff] [blame] | 41 | group_name = display.group_name(group) |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 42 | header_row.append( display.box(group_name, header=True) ) |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 43 | |
| 44 | matrix = [header_row] |
| 45 | for testname in all_tests: |
mbligh | 5556702 | 2007-10-07 00:50:21 +0000 | [diff] [blame] | 46 | shortname = re.sub(r'kernel.', r'kernel<br>', testname) |
| 47 | row = [display.box(shortname)] |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 48 | for group in present_groups: |
mbligh | 5556702 | 2007-10-07 00:50:21 +0000 | [diff] [blame] | 49 | tests = group.tests({ 'kernel_idx' : kernel.idx , |
mbligh | 84b9ff1 | 2007-11-26 20:51:57 +0000 | [diff] [blame] | 50 | 'test' : testname }) |
mbligh | 7e92b53 | 2007-10-07 01:37:02 +0000 | [diff] [blame] | 51 | link = 'machine_kernel_test.cgi?' |
| 52 | link += 'group=%s&kernel=%s&test=%s' % \ |
| 53 | (group.name, kernel.idx, testname) |
| 54 | box = display.status_count_box(db, tests, link=link) |
mbligh | f01eae1 | 2007-10-07 00:22:42 +0000 | [diff] [blame] | 55 | row.append(box) |
| 56 | matrix.append(row) |
| 57 | matrix.append(header_row) |
| 58 | |
| 59 | display.print_table(matrix) |
| 60 | |
| 61 | main() |