set svn:keywords property for proper keywords expansion
[plcapi.git] / pycurl / tests / test_memleak.py
1 #! /usr/bin/env python
2 # -*- coding: iso-8859-1 -*-
3 # vi:ts=4:et
4 # $Id$
5
6 #
7 # just a simple self-test
8 # need Python 2.2 or better for garbage collection
9 #
10
11 import gc, pycurl, sys
12 gc.enable()
13
14
15 print "Python", sys.version
16 print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
17 ##print "PycURL version info", pycurl.version_info()
18 print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)
19
20
21 gc.collect()
22 flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
23 if 1:
24     flags = flags | gc.DEBUG_STATS
25 gc.set_debug(flags)
26 gc.collect()
27
28 print "Tracked objects:", len(gc.get_objects())
29
30 multi = pycurl.CurlMulti()
31 t = []
32 for a in range(100):
33     curl = pycurl.Curl()
34     multi.add_handle(curl)
35     t.append(curl)
36
37 print "Tracked objects:", len(gc.get_objects())
38
39 for curl in t:
40     curl.close()
41     multi.remove_handle(curl)
42
43 print "Tracked objects:", len(gc.get_objects())
44
45 del curl
46 del t
47 del multi
48
49 print "Tracked objects:", len(gc.get_objects())
50 gc.collect()
51 print "Tracked objects:", len(gc.get_objects())
52
53