#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
# vi:ts=4:et
# $Id: test_memleak.py,v 1.4 2003/05/01 16:48:54 mfx Exp $

#
# just a simple self-test
# need Python 2.2 or better for garbage collection
#

import gc, pycurl, sys
gc.enable()


print "Python", sys.version
print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
##print "PycURL version info", pycurl.version_info()
print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)


gc.collect()
flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
if 1:
    flags = flags | gc.DEBUG_STATS
gc.set_debug(flags)
gc.collect()

print "Tracked objects:", len(gc.get_objects())

multi = pycurl.CurlMulti()
t = []
for a in range(100):
    curl = pycurl.Curl()
    multi.add_handle(curl)
    t.append(curl)

print "Tracked objects:", len(gc.get_objects())

for curl in t:
    curl.close()
    multi.remove_handle(curl)

print "Tracked objects:", len(gc.get_objects())

del curl
del t
del multi

print "Tracked objects:", len(gc.get_objects())
gc.collect()
print "Tracked objects:", len(gc.get_objects())


