gcleak2.nim 480 B

1234567891011121314151617181920212223242526272829
  1. discard """
  2. outputsub: "no leak: "
  3. """
  4. when defined(GC_setMaxPause):
  5. GC_setMaxPause 2_000
  6. type
  7. TTestObj = object of TObject
  8. x: string
  9. s: seq[int]
  10. proc MakeObj(): TTestObj =
  11. result.x = "Hello"
  12. result.s = @[1,2,3]
  13. proc inProc() =
  14. for i in 1 .. 1_000_000:
  15. when defined(gcMarkAndSweep):
  16. GC_fullcollect()
  17. var obj: TTestObj
  18. obj = MakeObj()
  19. if getOccupiedMem() > 300_000: quit("still a leak!")
  20. inProc()
  21. echo "no leak: ", getOccupiedMem()