xref: /llvm-project/mlir/test/python/ir/context_lifecycle.py (revision 78bd124649ece163d3a26b33608bdbe518d8ff76)
19f3f6d7bSStella Laurenzo# RUN: %PYTHON %s
29f3f6d7bSStella Laurenzo# Standalone sanity check of context life-cycle.
39f3f6d7bSStella Laurenzoimport gc
49f3f6d7bSStella Laurenzoimport mlir.ir
59f3f6d7bSStella Laurenzo
69f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 0
79f3f6d7bSStella Laurenzo
89f3f6d7bSStella Laurenzo# Create first context.
99f3f6d7bSStella Laurenzoprint("CREATE C1")
109f3f6d7bSStella Laurenzoc1 = mlir.ir.Context()
119f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 1
129f3f6d7bSStella Laurenzoc1_repr = repr(c1)
139f3f6d7bSStella Laurenzoprint("C1 = ", c1_repr)
149f3f6d7bSStella Laurenzo
159f3f6d7bSStella Laurenzoprint("GETTING AGAIN...")
169f3f6d7bSStella Laurenzoc2 = c1._get_context_again()
179f3f6d7bSStella Laurenzoc2_repr = repr(c2)
189f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 1
199f3f6d7bSStella Laurenzoassert c1_repr == c2_repr
209f3f6d7bSStella Laurenzo
219f3f6d7bSStella Laurenzoprint("C2 =", c2)
229f3f6d7bSStella Laurenzo
239f3f6d7bSStella Laurenzo# Make sure new contexts on constructor.
249f3f6d7bSStella Laurenzoprint("CREATE C3")
259f3f6d7bSStella Laurenzoc3 = mlir.ir.Context()
269f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 2
279f3f6d7bSStella Laurenzoc3_repr = repr(c3)
289f3f6d7bSStella Laurenzoprint("C3 =", c3)
299f3f6d7bSStella Laurenzoassert c3_repr != c1_repr
309f3f6d7bSStella Laurenzoprint("FREE C3")
319f3f6d7bSStella Laurenzoc3 = None
329f3f6d7bSStella Laurenzogc.collect()
339f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 1
349f3f6d7bSStella Laurenzo
359f3f6d7bSStella Laurenzoprint("Free C1")
369f3f6d7bSStella Laurenzoc1 = None
379f3f6d7bSStella Laurenzogc.collect()
389f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 1
399f3f6d7bSStella Laurenzoprint("Free C2")
409f3f6d7bSStella Laurenzoc2 = None
419f3f6d7bSStella Laurenzogc.collect()
429f3f6d7bSStella Laurenzoassert mlir.ir.Context._get_live_count() == 0
439f3f6d7bSStella Laurenzo
449f3f6d7bSStella Laurenzo# Create a context, get its capsule and create from capsule.
459f3f6d7bSStella Laurenzoc4 = mlir.ir.Context()
469f3f6d7bSStella Laurenzoc4_capsule = c4._CAPIPtr
479f3f6d7bSStella Laurenzoassert '"mlir.ir.Context._CAPIPtr"' in repr(c4_capsule)
489f3f6d7bSStella Laurenzoc5 = mlir.ir.Context._CAPICreate(c4_capsule)
49*78bd1246SAlex Zinenkoassert c4 is c5
50