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