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(): |
| 14 | |
| 15 | form = cgi.FieldStorage() |
| 16 | kernel_idx = form["kernel"].value |
| 17 | kernel = frontend.kernel.select(db, {'kernel_idx' : kernel_idx })[0] |
| 18 | groups = frontend.group.select(db) |
| 19 | |
| 20 | print_kernel_groups_vs_tests(kernel, groups) |
| 21 | |
| 22 | |
| 23 | def print_kernel_groups_vs_tests(kernel, groups): |
| 24 | # first we have to get a list of all run tests across all machines |
| 25 | all_tests = set() |
| 26 | results = {} # will be a 3d hash [group][test][status] = count |
| 27 | for group in groups: |
| 28 | results[group] = {} |
| 29 | for test in group.tests(): |
| 30 | all_tests.add(test.subdir) |
| 31 | results[group][test.subdir] = {} |
| 32 | count = results[group][test.subdir].get(test.status_num, 0) |
| 33 | results[group][test.subdir][test.status_num] = count + 1 |
| 34 | all_tests = list(all_tests) |
| 35 | |
| 36 | print '<h1>%s</h1>' % kernel.printable |
| 37 | |
| 38 | header_row = [ display.box('Test', header=True) ] |
| 39 | for group in groups: |
| 40 | header_row.append( display.box(group, header=True) ) |
| 41 | |
| 42 | matrix = [header_row] |
| 43 | for testname in all_tests: |
| 44 | row = [display.box(re.sub(r'kernel.', r'kernel<br>', testname))] |
| 45 | for group in groups: |
| 46 | if not results[group].has_key(testname): |
| 47 | continue |
| 48 | worst = sorted(results[group][testname].keys())[0] |
| 49 | html = display.status_html(db, results[group][testname]) |
| 50 | box = display.box(html, db.status_word[worst]) |
| 51 | row.append(box) |
| 52 | matrix.append(row) |
| 53 | matrix.append(header_row) |
| 54 | |
| 55 | display.print_table(matrix) |
| 56 | |
| 57 | main() |