Index: lutinutil/src/test/org/codelutin/util/HashMapMultiKeyTest.java diff -u lutinutil/src/test/org/codelutin/util/HashMapMultiKeyTest.java:1.2 lutinutil/src/test/org/codelutin/util/HashMapMultiKeyTest.java:1.3 --- lutinutil/src/test/org/codelutin/util/HashMapMultiKeyTest.java:1.2 Fri Nov 11 03:16:59 2005 +++ lutinutil/src/test/org/codelutin/util/HashMapMultiKeyTest.java Thu Nov 17 19:09:55 2005 @@ -23,9 +23,9 @@ * Created: 27 septembre 2005 12:28:03 CEST * * @author Benjamin POUSSIN - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * - * Last update: $Date: 2005/11/11 03:16:59 $ + * Last update: $Date: 2005/11/17 19:09:55 $ * by : $Author: bpoussin $ */ @@ -34,9 +34,11 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import javax.swing.JLabel; import junit.framework.TestCase; +import org.apache.commons.collections.map.LRUMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -191,6 +193,33 @@ assertEquals(key, key2); assertEquals(key2, key); + } + + public void testGarbage() throws Exception { + int ITER=100; + int MAX=5; + Map cache = new LRUMap(MAX); + HashMapMultiKey map = new HashMapMultiKey(HashMapMultiKey.WEAK, HashMapMultiKey.WEAK); + + int i = 0; + while(i++ < ITER) { + Object key = new HashMapMultiKey.Key().add("toto " + i); + Object val = "titi" + i; + + cache.put(key, val); + map.put(key, val); + + System.gc(); + Thread.yield(); + + Object v1 = cache.get(key); + Object v2 = map.get(key); + + assertEquals(v1, v2); + + assertTrue(cache.size() <= MAX); + assertTrue("Erreur iter "+i+" map.size(" + map.size() +")>"+ MAX, map.size() <= MAX); + } } } // HashMapMultiKeyTest