~mwhudson/+junk/bench-moin

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])