@@ -280,7 +280,12 @@ void ExecTest()
280280 {
281281 try
282282 {
283+ PythonEngine . Initialize ( ) ;
283284 var numRef = CreateNumReference ( ) ;
285+ PythonEngine . Shutdown ( ) ; // <- "run" 1 ends
286+ PythonEngine . Initialize ( ) ; // <- "run" 2 starts
287+ Assert . True ( numRef . IsAlive ) ;
288+
284289 GC . Collect ( ) ;
285290 GC . WaitForPendingFinalizers ( ) ; // <- this will put former `num` into Finalizer queue
286291 Finalizer . Instance . Collect ( forceDispose : true ) ;
@@ -321,7 +326,11 @@ void ExecTest()
321326 {
322327 try
323328 {
329+ PythonEngine . Initialize ( ) ;
324330 var objRef = CreateConcreateObject ( ) ;
331+ PythonEngine . Shutdown ( ) ; // <- "run" 1 ends
332+ PythonEngine . Initialize ( ) ; // <- "run" 2 starts
333+ Assert . True ( objRef . IsAlive ) ;
325334 GC . Collect ( ) ;
326335 GC . WaitForPendingFinalizers ( ) ;
327336 Finalizer . Instance . Collect ( forceDispose : true ) ;
@@ -355,25 +364,17 @@ void ErrorHandler(object sender, Finalizer.ErrorArgs e)
355364
356365 private static WeakReference CreateNumReference ( )
357366 {
358- PythonEngine . Initialize ( ) ;
359367 var num = 3216757418 . ToPython ( ) ;
360368 Assert . AreEqual ( num . Refcount , 1 ) ;
361369 WeakReference numRef = new WeakReference ( num , false ) ;
362- PythonEngine . Shutdown ( ) ; // <- "run" 1 ends
363- PythonEngine . Initialize ( ) ; // <- "run" 2 starts
364- num = null ;
365370 return numRef ;
366371 }
367372
368373 private static WeakReference CreateConcreateObject ( )
369374 {
370- PythonEngine . Initialize ( ) ;
371375 var obj = new Domain . MyClass ( ) . ToPython ( ) ;
372376 Assert . AreEqual ( obj . Refcount , 1 ) ;
373377 WeakReference numRef = new WeakReference ( obj , false ) ;
374- PythonEngine . Shutdown ( ) ;
375- PythonEngine . Initialize ( ) ;
376- obj = null ;
377378 return numRef ;
378379 }
379380
0 commit comments