mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
fixes #2070
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
=====================================================
|
||||
Nim -- a Compiler for Nim. http://nim-lang.org/
|
||||
|
||||
Copyright (C) 2006-2014 Andreas Rumpf. All rights reserved.
|
||||
Copyright (C) 2006-2015 Andreas Rumpf. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
29
tests/gc/growobjcrash.nim
Normal file
29
tests/gc/growobjcrash.nim
Normal file
@@ -0,0 +1,29 @@
|
||||
discard """
|
||||
output: "works"
|
||||
"""
|
||||
|
||||
import cgi, strtabs
|
||||
|
||||
proc handleRequest(query: string): StringTableRef =
|
||||
iterator foo(): StringTableRef {.closure.} =
|
||||
var params = {:}.newStringTable()
|
||||
for key, val in cgi.decodeData(query):
|
||||
params[key] = val
|
||||
yield params
|
||||
|
||||
let x = foo
|
||||
result = x()
|
||||
|
||||
const Limit = when compileOption("gc", "markAndSweep"): 5*1024*1024 else: 500_000
|
||||
|
||||
proc main =
|
||||
var counter = 0
|
||||
for i in 0 .. 100_000:
|
||||
for k, v in handleRequest("nick=Elina2&type=activate"):
|
||||
inc counter
|
||||
if counter mod 100 == 0:
|
||||
if getOccupiedMem() > Limit:
|
||||
quit "but now a leak"
|
||||
|
||||
main()
|
||||
echo "works"
|
||||
@@ -120,7 +120,8 @@ proc gcTests(r: var TResults, cat: Category, options: string) =
|
||||
" --gc:markAndSweep", cat, actionRun)
|
||||
testSpec r, makeTest("tests/gc" / filename, options &
|
||||
" -d:release --gc:markAndSweep", cat, actionRun)
|
||||
|
||||
|
||||
test "growobjcrash"
|
||||
test "gcbench"
|
||||
test "gcleak"
|
||||
test "gcleak2"
|
||||
|
||||
Reference in New Issue
Block a user