diff options
Diffstat (limited to 'tests/gc/gcleak.nim')
-rw-r--r--[-rwxr-xr-x] | tests/gc/gcleak.nim | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/tests/gc/gcleak.nim b/tests/gc/gcleak.nim index ab85409ee..0bf993968 100755..100644 --- a/tests/gc/gcleak.nim +++ b/tests/gc/gcleak.nim @@ -2,17 +2,28 @@ discard """ outputsub: "no leak: " """ +when defined(GC_setMaxPause): + GC_setMaxPause 2_000 + type - TTestObj = object of TObject + TTestObj = object of RootObj x: string -proc MakeObj(): TTestObj = +proc makeObj(): TTestObj = result.x = "Hello" -for i in 1 .. 100_000_000: - var obj = MakeObj() +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() - |