added 2 GC leak test cases
This commit is contained in:
parent
338683a198
commit
ad53e0b022
2 changed files with 75 additions and 0 deletions
33
tests/gc/stackrefleak.nim
Normal file
33
tests/gc/stackrefleak.nim
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
discard """
|
||||
outputsub: "no leak: "
|
||||
"""
|
||||
|
||||
type
|
||||
Cyclic = object
|
||||
sibling: PCyclic
|
||||
data: array[0..200, char]
|
||||
|
||||
PCyclic = ref Cyclic
|
||||
|
||||
proc makePair: PCyclic =
|
||||
new(result)
|
||||
new(result.sibling)
|
||||
result.sibling.sibling = result
|
||||
|
||||
proc loop =
|
||||
for i in 0..10000:
|
||||
var x = makePair()
|
||||
GC_fullCollect()
|
||||
x = nil
|
||||
GC_fullCollect()
|
||||
|
||||
if getOccupiedMem() > 300_000:
|
||||
echo "still a leak! ", getOccupiedMem()
|
||||
quit(1)
|
||||
else:
|
||||
echo "no leak: ", getOccupiedMem()
|
||||
|
||||
loop()
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue