Skip to content

Commit 1ee3097

Browse files
authored
Merge branch 'master' into support-arm
2 parents 3c762a1 + 2bc514f commit 1ee3097

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/embed_tests/TestFinalizer.cs

+18-6
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void CollectBasicObject()
4545
called = true;
4646
};
4747

48-
Assert.IsFalse(called);
48+
Assert.IsFalse(called, "The event handler was called before it was installed");
4949
Finalizer.Instance.CollectOnce += handler;
5050

5151
WeakReference shortWeak;
@@ -55,13 +55,25 @@ public void CollectBasicObject()
5555
}
5656
FullGCCollect();
5757
// The object has been resurrected
58-
Assert.IsFalse(shortWeak.IsAlive);
59-
Assert.IsTrue(longWeak.IsAlive);
58+
Warn.If(
59+
shortWeak.IsAlive,
60+
"The referenced object is alive although it should have been collected",
61+
shortWeak
62+
);
63+
Assert.IsTrue(
64+
longWeak.IsAlive,
65+
"The reference object is not alive although it should still be",
66+
longWeak
67+
);
6068

6169
{
6270
var garbage = Finalizer.Instance.GetCollectedObjects();
63-
Assert.NotZero(garbage.Count);
64-
Assert.IsTrue(garbage.Any(T => ReferenceEquals(T.Target, longWeak.Target)));
71+
Assert.NotZero(garbage.Count, "There should still be garbage around");
72+
Warn.Unless(
73+
garbage.Any(T => ReferenceEquals(T.Target, longWeak.Target)),
74+
$"The {nameof(longWeak)} reference doesn't show up in the garbage list",
75+
garbage
76+
);
6577
}
6678
try
6779
{
@@ -71,7 +83,7 @@ public void CollectBasicObject()
7183
{
7284
Finalizer.Instance.CollectOnce -= handler;
7385
}
74-
Assert.IsTrue(called);
86+
Assert.IsTrue(called, "The event handler was not called during finalization");
7587
Assert.GreaterOrEqual(objectCount, 1);
7688
}
7789

0 commit comments

Comments
 (0)