Le 30/06/2010 09:20, Andrew Kennedy a écrit :
So, what do people think would be the best and simplest way to test this leak is fixed? Or am I over complicating this for myself before I've had enough coffee?
I admit I don't remember seeing a unit test for a memory leak. This is usually verified once by a profiler. I see two approaches to write such a test:
- generate a heap dump and inspect it- if the test can get a reference on the object that leaks, the garbage collection can be verified by a WeakReference combined with a ReferenceQueue
public void testMemoryLeak() {
Object leakingObject = getLeakingObject();
ReferenceQueue queue = new ReferenceQueue();
WeakReference reference = new WeakReference(leakingObject, queue);
leakingObject = null;
// so some operations supposed to dereference the object
System.gc();
assertTrue(reference.isEnqueued());
}
Emmanuel Bourg
smime.p7s
Description: S/MIME Cryptographic Signature
