MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_operator_new_delete

Function test_operator_new_delete

tests/test_class.py:325–371  ·  view source on GitHub ↗

Tests that class-specific operator new/delete functions are invoked

(capture)

Source from the content-addressed store, hash-verified

323
324
325def test_operator_new_delete(capture):
326 """Tests that class-specific operator new/delete functions are invoked"""
327
328 class SubAliased(m.AliasedHasOpNewDelSize):
329 pass
330
331 with capture:
332 a = m.HasOpNewDel()
333 b = m.HasOpNewDelSize()
334 d = m.HasOpNewDelBoth()
335 assert (
336 capture
337 == """
338 A new 8
339 B new 4
340 D new 32
341 """
342 )
343 sz_alias = str(m.AliasedHasOpNewDelSize.size_alias)
344 sz_noalias = str(m.AliasedHasOpNewDelSize.size_noalias)
345 with capture:
346 c = m.AliasedHasOpNewDelSize()
347 c2 = SubAliased()
348 assert capture == ("C new " + sz_noalias + "\n" + "C new " + sz_alias + "\n")
349
350 with capture:
351 del a
352 pytest.gc_collect()
353 del b
354 pytest.gc_collect()
355 del d
356 pytest.gc_collect()
357 assert (
358 capture
359 == """
360 A delete
361 B delete 4
362 D delete
363 """
364 )
365
366 with capture:
367 del c
368 pytest.gc_collect()
369 del c2
370 pytest.gc_collect()
371 assert capture == ("C delete " + sz_noalias + "\n" + "C delete " + sz_alias + "\n")
372
373
374def test_bind_protected_functions():

Callers

nothing calls this directly

Calls 3

strClass · 0.85
SubAliasedClass · 0.85

Tested by

no test coverage detected