1
-
2
1
from mem_usage_parser .frame_parser import HeapFrame
3
2
3
+
4
4
class TestHeapFrame :
5
5
def test_unix (self ):
6
6
heap = [
@@ -16,10 +16,9 @@ def test_unix(self):
16
16
17
17
def test_device (self ):
18
18
heap = [
19
- "stack: 668 out of 15360"
20
- "GC: total: 152512, used: 1264, free: 151248" ,
19
+ "stack: 668 out of 15360" "GC: total: 152512, used: 1264, free: 151248" ,
21
20
" No. of 1-blocks: 24, 2-blocks: 3, max blk sz: 18, max free sz: 9440" ,
22
- "GC memory layout; from 20006c30:"
21
+ "GC memory layout; from 20006c30:" ,
23
22
]
24
23
frame = HeapFrame (4321 , heap )
25
24
print ("test device" )
@@ -29,5 +28,96 @@ def test_device(self):
29
28
# Other tests
30
29
31
30
# - Ensure blank lines are stripped
32
- # - Ensure LogFrames are generated for inital lines (preceeding @@@ lines)
33
- # - Check each of the frame types
31
+ # - Ensure LogFrames are generated for initial lines (preceding @@@ lines)
32
+ # - Check each of the frame types
33
+
34
+
35
+ two_frames = """
36
+ Installing logging (latest) from https://micropython.org/pi/v2 to /root/.micropython/lib
37
+ Copying: /root/.micropython/lib/logging.mpy
38
+ Done
39
+ INFO:MemTest:Begin Example 1
40
+ INFO:MemTest:Periodically, allocate bytearray blocks and store them in a list. At a slower interval, delete half of the list recover the memory.
41
+ @@@ 45828774 (2024, 9, 10, 12, 5, 42, 1, 254)
42
+ @@@ 45828774
43
+ mem: total=77932, current=44073, peak=44073
44
+ stack: 7328 out of 80000
45
+ GC: total: 296448, used: 49920, free: 246528
46
+ No. of 1-blocks: 695, 2-blocks: 83, max blk sz: 91, max free sz: 7704
47
+ GC memory layout; from 7f2951dbdde0:
48
+ 00000000: MDhh=hhLhhSh===h========hhhBMDhBShThSBBMDh==BShBDBDBBBhBhBBBBh==
49
+ 00000800: =h===T==B==BBBTB=BBBT=B=h=h========MDShhSh========hhShMhShh==hhS
50
+ 00001000: SDSh=BMDBShhhh==ShDhShLhh=LLhShSh=LhT=AhDhh=====================
51
+ 00001800: ================================================================
52
+ 00002000: =====h=============TSSSh=hhLhShShShShhSSLhShShSh=SSLhShSh=Shh=SS
53
+ 00002800: LhShShShhShSLhShShShh=SSLhShSh=ShhSSSLhShShhSSLhShShShhSSLLhShSh
54
+ 00003000: Shh=SSLhShShh====hShShhShhShSh==hSh=ShShhhSSSh=hhThh=hSSTDBMDhDS
55
+ 00003800: h=hhALhShShShLhShShLhT=AhDhh====================================
56
+ 00004000: ======================================================h=========
57
+ 00004800: ====TSSSh=hhLhShShShShhSSLhShShSh=SSLhShSh=Shh=SSLhShShShhShSLhS
58
+ 00005000: hShShh=SSLhShSh=Shh=SSLhShShhSSLhShShShhShSSLhShShhSSLhShShh====
59
+ 00005800: hh=h==SShT==hShSShhThShhShSShhThShhSh===hhhBTT=Dh=BDBDhTh===BDhT
60
+ 00006000: h===hhhTB=BBBBBhh=hh==h===DSShhh===h===BBBBBBBBhhh===BTh=B=BhBDB
61
+ 00006800: BBBBhhh=h====TB=BBhhh=hDDBBBBh===h====hhh===============Bh===Sh=
62
+ 00007000: h=====h==============hSShDTh======hh====h===========h===h===h===
63
+ 00007800: ===h===h==hh===h============================h=Sh====hhh=========
64
+ 00008000: ==============h=========h==hhh=h=hhhhhhhhhhhh=hh=hhhh=hhh=hh=hhh
65
+ 00008800: hh=hh=hhhh=hh==hhh==h===h=hhhhhhhh===hhhhhhhhhhhh===hhhhhhh=hhhh
66
+ 00009000: hhhhhhhhhhhh=hhhh====hhh==DBDBBh=DBTB=BBBBDh===BBBBBBBBBT==hBTh=
67
+ 00009800: ==h===B=hTBBh==h===DhBTB=hh=hTh===BDBTB=BBBh==h===DBTB=BBBBBBBBD
68
+ 0000a000: hB=BBh===TB=h========B==hhhh===hBBTTh==================hhhB=BDBB
69
+ 0000a800: Lh=h====hLhLhhhh=LhhhTh=hh=Th=hTh=h=hhh===Th===h===h=h========h=
70
+ 0000b000: ==hh=Thhh=h==h=hh=hh=h======h==h=hMFhDBFFFDShh===h==hSFFFDh=====
71
+ 0000b800: =========h==Sh====h====ShTBBTh=DhTDhBhh=h===h===h=h=============
72
+ 0000c000: =====hhBh=BLhh=h=T==hT==........................................
73
+ (119 lines all free)
74
+ 00048000: ................................................
75
+ @@@
76
+ INFO:MemTest:Allocating 5000 bytes
77
+ INFO:MemTest:Freeing half of the allocated bytearrays
78
+ INFO:MemTest:Allocating 5000 bytes
79
+ INFO:MemTest:Allocating 5000 bytes
80
+ INFO:MemTest:Allocating 5000 bytes
81
+ @@@ 45829127
82
+ mem: total=102737, current=66214, peak=66358
83
+ stack: 7328 out of 80000
84
+ GC: total: 296448, used: 46112, free: 250336
85
+ No. of 1-blocks: 324, 2-blocks: 56, max blk sz: 157, max free sz: 7209
86
+ GC memory layout; from 7f2951dbdde0:
87
+ 00000000: MDhh=hhLhhSh===h========hhhBMDhFShShhBBMDShAFShFDBDBBBhBhBBBBh==
88
+ 00000800: =h===FDSB==BBBSB=BBBh=B=h=h========MDh=hFh========hhSSMhShAFh==F
89
+ 00001000: ShSAFBMDFShhhDh==SDSShLhh=Lh====================================
90
+ 00001800: ================================================================
91
+ 00002000: ========================================================h=h=h...
92
+ 00002800: ..FFFDh==Sh=h=S.................................................
93
+ 00003000: .........................hShS...h.......................TDBMDh..
94
+ 00003800: ..h......................D......................................
95
+ 00004000: ................................................................
96
+ 00004800: ....................Sh.......Sh.......Sh...Sh......Sh..Sh......S
97
+ 00005000: h..Sh......Sh...Sh......Sh.......Sh..Sh..h....Sh.......Sh..h====
98
+ 00005800: ...h==.........................................Dh=.D.Dh.h===.Dh.
99
+ 00006000: h===hhh.B=BBB.Bh..hh==h===DSShh....h===BBBBBBBBhhh===B.h=B=Bh.DB
100
+ 00006800: BBBBhhh=h====.B=BBhhh=hDDBBBBh===h====..h===============.h===Sh=
101
+ 00007000: h=====h==============.SShD.h======hh====h===========h===h===h===
102
+ 00007800: ===h===h==hh===h============================h=S.................
103
+ 00008000: ........................h==......h.h.h.h.h.....h=.h.h=.....h=.h.
104
+ 00008800: ....h=.h.h=.h==.........h=.h.h.h.h===.h.h.h.h.h.h===.h.h..h=.h.h
105
+ 00009000: .h.h.h.h.h.h=.h.h====..h==D.D.Bh=DB.B=BBB.Dh===BBBBBBBBB...hB.h=
106
+ 00009800: ==h===B=h..Bh==h===DhB.B=hh=h.h===.DB.B=B.Bh==h===DB.B=BBBBBBBBD
107
+ 0000a000: hB=BBh===.B=h========B==hhhh===..B..h==================...B=.DBB
108
+ 0000a800: .h=h====hLhLhh.h=Lhhh.h=hh=.h=hTh=h=h.h===Th===h===h=h========..
109
+ 0000b000: ..h..Thh..h==h=hh=hh=h======h==h=hM.hD.......h===...............
110
+ 0000b800: ........................h.B..h=DhTDhBhh=h===h===h=h=============
111
+ 0000c000: =====hhBh=.Lhh=h=............A.hF...............h===============
112
+ 0000c800: ================================================================
113
+ 0000d000: ================================================================
114
+ 0000d800: =============h==================================================
115
+ 0000e000: ================================================================
116
+ 0000e800: ==========================================h=====================
117
+ 0000f000: ================================================================
118
+ 0000f800: ================================================================
119
+ 00010000: =======.........................................................
120
+ (111 lines all free)
121
+ 00048000: ................................................
122
+ @@@
123
+ """
0 commit comments