From 3dc72516fe915b5ba3722b11e07fb70211169509 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 23 Nov 2007 13:40:03 +0100 Subject: * python/progress.cc: - fix refcount problem in OpProgress - fix refcount problem in FetchProgress - fix refcount problem in CdromProgress --- tests/refcount.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tests/refcount.py (limited to 'tests') diff --git a/tests/refcount.py b/tests/refcount.py new file mode 100755 index 00000000..e8bd9c6d --- /dev/null +++ b/tests/refcount.py @@ -0,0 +1,35 @@ +#!/usr/bin/python-dbg + +from pprint import pprint,pformat +import apt +import sys +import gc +import difflib + +# get initial cache +print sys.gettotalrefcount() +progress= apt.progress.OpTextProgress() +c = apt.Cache(progress) +print "refcount after first cache instance: ", sys.gettotalrefcount() + +# test open() +c.open(progress) +print "refcount after cache open: ", sys.gettotalrefcount() +#pprint(sys.getobjects(10)) + +c.open(apt.progress.OpProgress()) +print "refcount after seconf cache open: ", sys.gettotalrefcount() +#pprint(sys.getobjects(10)) + +# FIXME: find a way to get a efficient diff +#before = gc.get_objects() +#c.open(apt.progress.OpProgress()) +#after = gc.get_objects() + + +# test update() +print "refcount before cache.update(): ", sys.gettotalrefcount() +c.update() +gc.collect() +print "refcount after cache.update(): ", sys.gettotalrefcount() +pprint(sys.getobjects(20)) -- cgit v1.2.3 From e88bce2daf00abe508730e1cd7dd5ef4243ec6f7 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 23 Nov 2007 14:03:26 +0100 Subject: * tests/refcount.py: - add tests for install/remove of packages --- tests/refcount.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/refcount.py b/tests/refcount.py index e8bd9c6d..f3230bd3 100755 --- a/tests/refcount.py +++ b/tests/refcount.py @@ -32,4 +32,23 @@ print "refcount before cache.update(): ", sys.gettotalrefcount() c.update() gc.collect() print "refcount after cache.update(): ", sys.gettotalrefcount() -pprint(sys.getobjects(20)) +c.update() +gc.collect() +print "refcount after second cache.update(): ", sys.gettotalrefcount() +#pprint(sys.getobjects(20)) + + +# test install() +c.open(apt.progress.OpProgress()) +gc.collect() +print "refcount before cache['hello'].markInstall(): ", sys.gettotalrefcount() +c["hello"].markInstall() +c.commit(apt.progress.FetchProgress(), apt.progress.InstallProgress()) +gc.collect() +print "refcount after: ", sys.gettotalrefcount() +c.open(apt.progress.OpProgress()) +c["hello"].markDelete() +c.commit(apt.progress.FetchProgress(), apt.progress.InstallProgress()) +gc.collect() +print "refcount after: ", sys.gettotalrefcount() +pprint(sys.getobjects(10)) -- cgit v1.2.3