package org.castor.util; import org.castor.core.util.CycleBreaker; import org.junit.Assert; import org.junit.Test; public class CycleBreakerTest { @Test public void testMemLeak() { long startfreeMemory = Runtime.getRuntime().freeMemory(); for (int i = 1; i < 1000; i++) { Thread thread = new Thread() { @Override public void run() { CycleBreaker.startingToCycle(this); CycleBreaker.releaseCycleHandle(this); } }; thread.start(); try { thread.join(); } catch (InterruptedException e) { // ignore } } long endfreeMemory = Runtime.getRuntime().freeMemory(); // Check if memory usage was higher than 1MB Assert.assertFalse("Memory Leak", (startfreeMemory - endfreeMemory) / (1024 * 1024) > 1); } }