1# RUN: %PYTHON %s 2# Standalone sanity check of context life-cycle. 3import gc 4import mlir.ir 5 6assert mlir.ir.Context._get_live_count() == 0 7 8# Create first context. 9print("CREATE C1") 10c1 = mlir.ir.Context() 11assert mlir.ir.Context._get_live_count() == 1 12c1_repr = repr(c1) 13print("C1 = ", c1_repr) 14 15print("GETTING AGAIN...") 16c2 = c1._get_context_again() 17c2_repr = repr(c2) 18assert mlir.ir.Context._get_live_count() == 1 19assert c1_repr == c2_repr 20 21print("C2 =", c2) 22 23# Make sure new contexts on constructor. 24print("CREATE C3") 25c3 = mlir.ir.Context() 26assert mlir.ir.Context._get_live_count() == 2 27c3_repr = repr(c3) 28print("C3 =", c3) 29assert c3_repr != c1_repr 30print("FREE C3") 31c3 = None 32gc.collect() 33assert mlir.ir.Context._get_live_count() == 1 34 35print("Free C1") 36c1 = None 37gc.collect() 38assert mlir.ir.Context._get_live_count() == 1 39print("Free C2") 40c2 = None 41gc.collect() 42assert mlir.ir.Context._get_live_count() == 0 43 44# Create a context, get its capsule and create from capsule. 45c4 = mlir.ir.Context() 46c4_capsule = c4._CAPIPtr 47assert '"mlir.ir.Context._CAPIPtr"' in repr(c4_capsule) 48c5 = mlir.ir.Context._CAPICreate(c4_capsule) 49assert c4 is c5 50