diff options
Diffstat (limited to 'tests/gc/gcleak.nim')
-rw-r--r-- | tests/gc/gcleak.nim | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/gc/gcleak.nim b/tests/gc/gcleak.nim new file mode 100644 index 000000000..0bf993968 --- /dev/null +++ b/tests/gc/gcleak.nim @@ -0,0 +1,29 @@ +discard """ + outputsub: "no leak: " +""" + +when defined(GC_setMaxPause): + GC_setMaxPause 2_000 + +type + TTestObj = object of RootObj + x: string + +proc makeObj(): TTestObj = + result.x = "Hello" + +const numIter = + # see tests/gc/gcleak2.nim + when defined(boehmgc): + 1_000 + elif defined(gcMarkAndSweep): 10_000 + else: 100_000 + +for i in 1 .. numIter: + when defined(gcMarkAndSweep) or defined(boehmgc): + GC_fullcollect() + var obj = makeObj() + if getOccupiedMem() > 300_000: quit("still a leak!") +# echo GC_getstatistics() + +echo "no leak: ", getOccupiedMem() |