def test_VT_I4_leaks(self): sa = _midlSAFEARRAY(c_long) def doit(): sa.from_param([1, 2, 3, 4, 5, 6]) bytes = find_memleak(doit) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_VT_BSTR_leaks(self): sb = _midlSAFEARRAY(BSTR) def doit(): sb.from_param(["foo", "bar"]) bytes = find_memleak(doit) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_leaks_2(self): # The XP firewall manager. fwmgr = CreateObject('HNetCfg.FwMgr') # apps has a _NewEnum property that implements IEnumVARIANT apps = fwmgr.LocalPolicy.CurrentProfile.AuthorizedApplications def doit(): iter(apps).Next(99) bytes = find_memleak(doit, (20, 20)) self.assertFalse(bytes, "Leaks %d bytes" % bytes)
def test_leaks_2(self): # The XP firewall manager. fwmgr = CreateObject('HNetCfg.FwMgr') # apps has a _NewEnum property that implements IEnumVARIANT apps = fwmgr.LocalPolicy.CurrentProfile.AuthorizedApplications def doit(): iter(apps).Next(99) bytes = find_memleak(doit, (2, 20)) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_VARIANT_array(self): v = VARIANT() v.value = ((1, 2, 3), ("foo", "bar", None)) self.failUnlessEqual(v.vt, VT_ARRAY | VT_VARIANT) self.failUnlessEqual(v.value, ((1, 2, 3), ("foo", "bar", None))) def func(): v = VARIANT((1, 2, 3), ("foo", "bar", None)) bytes = find_memleak(func) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_leaks_1(self): # The XP firewall manager. fwmgr = CreateObject('HNetCfg.FwMgr') # apps has a _NewEnum property that implements IEnumVARIANT apps = fwmgr.LocalPolicy.CurrentProfile.AuthorizedApplications def doit(): for item in iter(apps): item.ProcessImageFileName bytes = find_memleak(doit, (2, 20)) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_double_array(self): a = array.array("d", (3.14, 2.78)) v = VARIANT(a) self.failUnlessEqual(v.vt, VT_ARRAY | VT_R8) self.failUnlessEqual(tuple(a.tolist()), v.value) def func(): v = VARIANT(array.array("d", (3.14, 2.78))) bytes = find_memleak(func) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_UDT(self): from comtypes.gen.TestComServerLib import MYCOLOR v = VARIANT(MYCOLOR(red=1.0, green=2.0, blue=3.0)) value = v.value self.assertEqual((1.0, 2.0, 3.0), (value.red, value.green, value.blue)) def func(): v = VARIANT(MYCOLOR(red=1.0, green=2.0, blue=3.0)) return v.value bytes = find_memleak(func) self.assertFalse(bytes, "Leaks %d bytes" % bytes)
def test_leaks_1(self): # The XP firewall manager. fwmgr = CreateObject("HNetCfg.FwMgr") # apps has a _NewEnum property that implements IEnumVARIANT apps = fwmgr.LocalPolicy.CurrentProfile.AuthorizedApplications def doit(): for item in iter(apps): item.ProcessImageFileName bytes = find_memleak(doit, (2, 20)) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_UDT(self): from comtypes.gen.TestComServerLib import MYCOLOR v = VARIANT(MYCOLOR(red=1.0, green=2.0, blue=3.0)) value = v.value self.failUnlessEqual((1.0, 2.0, 3.0), (value.red, value.green, value.blue)) def func(): v = VARIANT(MYCOLOR(red=1.0, green=2.0, blue=3.0)) return v.value bytes = find_memleak(func) self.failIf(bytes, "Leaks %d bytes" % bytes)
def test_UDT(self): from comtypes.gen.TestComServerLib import MYCOLOR t = _midlSAFEARRAY(MYCOLOR) self.failUnless(t is _midlSAFEARRAY(MYCOLOR)) sa = t.from_param([MYCOLOR(0, 0, 0), MYCOLOR(1, 2, 3)]) self.failUnlessEqual([(x.red, x.green, x.blue) for x in sa[0]], [(0.0, 0.0, 0.0), (1.0, 2.0, 3.0)]) def doit(): t.from_param([MYCOLOR(0, 0, 0), MYCOLOR(1, 2, 3)]) bytes = find_memleak(doit) self.failIf(bytes, "Leaks %d bytes" % bytes)
def check_leaks(self, func, limit=0): bytes = find_memleak(func) self.failIf(bytes > limit, "Leaks %d bytes" % bytes)
def check_leaks(self, func): bytes = find_memleak(func, (5, 10)) self.assertFalse(bytes, "Leaks %d bytes" % bytes)
def _find_memleak(self, func): bytes = find_memleak(func) self.failIf(bytes, "Leaks %d bytes" % bytes)
def check_leaks(self, func): bytes = find_memleak(func, (5, 10)) self.failIf(bytes, "Leaks %d bytes" % bytes)
def check_leaks(self, func, limit=0): bytes = find_memleak(func) self.assertFalse(bytes > limit, "Leaks %d bytes" % bytes)
def _find_memleak(self, func): bytes = find_memleak(func) self.assertFalse(bytes, "Leaks %d bytes" % bytes)