88
by Michael Hudson-Doyle
longer test |
1 |
#!/usr/bin/python
|
2 |
||
89
by Michael Hudson-Doyle
make test longer so i can debug it :( |
3 |
import sys |
4 |
||
88
by Michael Hudson-Doyle
longer test |
5 |
def parse_block(lines): |
6 |
r = { |
|
7 |
'reqs': int(lines[0].split()[1]), |
|
8 |
'freqs': {} |
|
9 |
}
|
|
10 |
for line in lines[1:]: |
|
11 |
if line == 'cpu0': |
|
12 |
continue
|
|
13 |
if line == 'cpu1': |
|
14 |
break
|
|
15 |
freq, delta = line.strip().split() |
|
16 |
r['freqs'][int(freq)] = int(delta[1:]) |
|
17 |
return r |
|
89
by Michael Hudson-Doyle
make test longer so i can debug it :( |
18 |
|
19 |
def parse_file(filename): |
|
20 |
raw_blocks = open(filename, 'rU').read().split('\n\n') |
|
21 |
blocks = [] |
|
22 |
for raw_block in raw_blocks: |
|
23 |
if raw_block: |
|
24 |
blocks.append(parse_block(raw_block.splitlines())) |
|
25 |
return blocks |
|
26 |
||
27 |
def format_header(block): |
|
28 |
r = '<tr>' |
|
29 |
r += '<th>requests</th>' |
|
30 |
for k in sorted(block['freqs']): |
|
31 |
r += '<th><span>%s</span></th>' % k |
|
32 |
r += '</tr>\n' |
|
33 |
return r |
|
34 |
||
35 |
def format_block(block): |
|
36 |
r = '<tr>' |
|
37 |
r += '<td>%s</td>' % block['reqs'] |
|
38 |
for k in sorted(block['freqs']): |
|
39 |
r += '<td>%s</td>' % block['freqs'][k] |
|
40 |
r += '</tr>\n' |
|
41 |
return r |
|
42 |
||
43 |
def format_blocks(blocks): |
|
44 |
r = '<table>\n' |
|
45 |
r += format_header(blocks[0]) |
|
46 |
for block in blocks: |
|
47 |
r += format_block(block) |
|
48 |
r += '</table>\n' |
|
49 |
return r |
|
50 |
||
51 |
header = '''\ |
|
52 |
<html>
|
|
53 |
<head>
|
|
54 |
<style>
|
|
55 |
table {
|
|
56 |
padding-top: 4em;
|
|
57 |
}
|
|
58 |
th span {
|
|
59 |
font-size: smaller;
|
|
60 |
width: 1.2em;
|
|
61 |
white-space: nowrap;
|
|
62 |
||
63 |
color: #000;
|
|
64 |
display: block;
|
|
65 |
-moz-transform: rotate(-90deg);
|
|
66 |
-webkit-transform: rotate(-90deg);
|
|
67 |
}
|
|
68 |
</style>
|
|
69 |
</head>
|
|
70 |
<body>
|
|
71 |
'''
|
|
72 |
||
73 |
||
74 |
def main(fname): |
|
75 |
blocks = parse_file(fname) |
|
76 |
print header |
|
77 |
print format_blocks(blocks) |
|
78 |
print '</html>' |
|
79 |
||
80 |
if __name__ == '__main__': |
|
81 |
main(sys.argv[1]) |