@@ -36,16 +36,18 @@ public void CollectBasicObject()
3636 {
3737 Assert . IsTrue ( Finalizer . Instance . Enable ) ;
3838
39- int thId = Thread . CurrentThread . ManagedThreadId ;
4039 Finalizer . Instance . Threshold = 1 ;
4140 bool called = false ;
41+ var objectCount = 0 ;
4242 EventHandler < Finalizer . CollectArgs > handler = ( s , e ) =>
4343 {
44- Assert . AreEqual ( thId , Thread . CurrentThread . ManagedThreadId ) ;
45- Assert . GreaterOrEqual ( e . ObjectCount , 1 ) ;
44+ objectCount = e . ObjectCount ;
4645 called = true ;
4746 } ;
4847
48+ Assert . IsFalse ( called ) ;
49+ Finalizer . Instance . CollectOnce += handler ;
50+
4951 WeakReference shortWeak ;
5052 WeakReference longWeak ;
5153 {
@@ -61,18 +63,16 @@ public void CollectBasicObject()
6163 Assert . NotZero ( garbage . Count ) ;
6264 Assert . IsTrue ( garbage . Any ( T => ReferenceEquals ( T . Target , longWeak . Target ) ) ) ;
6365 }
64-
65- Assert . IsFalse ( called ) ;
66- Finalizer . Instance . CollectOnce += handler ;
6766 try
6867 {
69- Finalizer . Instance . CallPendingFinalizers ( ) ;
68+ Finalizer . Instance . Collect ( forceDispose : false ) ;
7069 }
7170 finally
7271 {
7372 Finalizer . Instance . CollectOnce -= handler ;
7473 }
7574 Assert . IsTrue ( called ) ;
75+ Assert . GreaterOrEqual ( objectCount , 1 ) ;
7676 }
7777
7878 private static void MakeAGarbage ( out WeakReference shortWeak , out WeakReference longWeak )
@@ -85,7 +85,7 @@ private static void MakeAGarbage(out WeakReference shortWeak, out WeakReference
8585
8686 private static long CompareWithFinalizerOn ( PyObject pyCollect , bool enbale )
8787 {
88- // Must larger than 512 bytes make sure Python use
88+ // Must larger than 512 bytes make sure Python use
8989 string str = new string ( '1' , 1024 ) ;
9090 Finalizer . Instance . Enable = true ;
9191 FullGCCollect ( ) ;
@@ -164,10 +164,11 @@ internal static void CreateMyPyObject(IntPtr op)
164164 public void ErrorHandling ( )
165165 {
166166 bool called = false ;
167+ var errorMessage = "" ;
167168 EventHandler < Finalizer . ErrorArgs > handleFunc = ( sender , args ) =>
168169 {
169170 called = true ;
170- Assert . AreEqual ( args . Error . Message , "MyPyObject" ) ;
171+ errorMessage = args . Error . Message ;
171172 } ;
172173 Finalizer . Instance . Threshold = 1 ;
173174 Finalizer . Instance . ErrorHandler += handleFunc ;
@@ -193,6 +194,7 @@ public void ErrorHandling()
193194 {
194195 Finalizer . Instance . ErrorHandler -= handleFunc ;
195196 }
197+ Assert . AreEqual ( errorMessage , "MyPyObject" ) ;
196198 }
197199
198200 [ Test ]
0 commit comments