File: test_loopcounter.py

package info (click to toggle)
pypy 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 107,216 kB
  • sloc: python: 1,201,787; ansic: 62,419; asm: 5,169; cpp: 3,017; sh: 2,534; makefile: 545; xml: 243; lisp: 45; awk: 4
file content (33 lines) | stat: -rw-r--r-- 995 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from cStringIO import StringIO
from rpython.jit.tool.loopcounter import count_loops_and_bridges

def test_loopcounter():
    log = StringIO("""
[1200] {stuff
...
[1201] stuff}
[120a] {jit-mem-looptoken-alloc
allocating Loop # 0
[120b] jit-mem-looptoken-alloc}
[1300] {jit-mem-looptoken-alloc
allocating Bridge # 1 of Loop # 0
[1301] jit-mem-looptoken-alloc}
[1400] {jit-mem-looptoken-alloc
allocating Bridge # 2 of Loop # 0
[1401] jit-mem-looptoken-alloc}
[1500] {jit-mem-looptoken-alloc
allocating Loop # 1
[1501] jit-mem-looptoken-alloc}
[1600] {jit-mem-looptoken-free
freeing Loop # 0 with 2 attached bridges
[1601] jit-mem-looptoken-free}
""")
    lines = list(count_loops_and_bridges(log))
    assert lines == [
        # time   total    loops    bridges
        (0x00a,      1,       1,         0),
        (0x100,      2,       1,         1),
        (0x200,      3,       1,         2),
        (0x300,      4,       2,         2),
        (0x400,      1,       1,         0),
        ]