File: test_loopcounter.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; 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),
        ]