pypy/module/_hpy_universal/test/_vendored/test_slots_legacy.py::AppTestLegacySlots::()::test_tp_destroy[hybrid]
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x000000004b1bef00>
def test_tp_destroy(self):
import gc
mod = self.make_module("""
@DEFINE_PointObject
@DEFINE_Point_new
static long destroyed_x;
HPyDef_SLOT(Point_destroy, HPy_tp_destroy)
static void Point_destroy_impl(void *obj)
{
PointObject *point = (PointObject *)obj;
destroyed_x += point->x;
}
HPyDef_METH(get_destroyed_x, "get_destroyed_x", HPyFunc_NOARGS)
static HPy get_destroyed_x_impl(HPyContext *ctx, HPy self)
{
return HPyLong_FromLong(ctx, destroyed_x);
}
@EXPORT_POINT_TYPE(&Point_new, &Point_destroy)
@EXPORT(get_destroyed_x)
@INIT
""")
point = mod.Point(7, 3)
self.debug_collect()
assert mod.get_destroyed_x() == 0
del point
self.debug_collect()
> assert mod.get_destroyed_x() == 7
E (application-level) AssertionError
[/buildbot/slave/own-linux-aarch64/build/pypy/module/_hpy_universal/test/_vendored/test_slots.py:37]:31: AssertionError
builder: own-linux-aarch64 build #2827+
test: pypy/module/_hpy_universal/test/_vendored/test_slots_legacy.py::AppTestLegacySlots::()::test_tp_destroy[hybrid]