[jbosscache-commits] JBoss Cache SVN: r7562 - core/trunk/src/test/java/org/jboss/cache/eviction.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Wed Jan 21 10:34:22 EST 2009


Author: mircea.markus
Date: 2009-01-21 10:34:21 -0500 (Wed, 21 Jan 2009)
New Revision: 7562

Modified:
   core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java
Log:
better support for concurrency

Modified: core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java	2009-01-21 15:09:04 UTC (rev 7561)
+++ core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java	2009-01-21 15:34:21 UTC (rev 7562)
@@ -36,6 +36,7 @@
    private static final Log log = LogFactory.getLog(ExpirationPolicyTest.class);
 
    private CacheSPI<Object, Object> cache;
+   private EvictionController ec;
 
    Fqn fqn1 = Fqn.fromString("/node/1");
    Fqn fqn2 = Fqn.fromString("/node/2");
@@ -52,13 +53,14 @@
       ExpirationAlgorithmConfig eAC = new ExpirationAlgorithmConfig();
       EvictionRegionConfig eRC = new EvictionRegionConfig(Fqn.ROOT, eAC);
       EvictionConfig econf = new EvictionConfig(eRC);
-      econf.setWakeupInterval(100);
+      econf.setWakeupInterval(0);
       conf.setEvictionConfig(econf);
       cache = (CacheSPI<Object, Object>) new UnitTestCacheFactory<Object, Object>().createCache(conf, false, getClass());
       cache.start();
+      ec = new EvictionController(cache);
 
-      future = System.currentTimeMillis() + 500;
-      past = System.currentTimeMillis() - 200;
+      future = System.currentTimeMillis() + 1500;
+      past = System.currentTimeMillis() - 1500;
    }
 
    @AfterMethod(alwaysRun = true)
@@ -69,7 +71,6 @@
    }
 
 
-   @Test (invocationCount = 5, successPercentage = 50)
    public void testEviction() throws Exception
    {
       cache.put(fqn1, ExpirationAlgorithmConfig.EXPIRATION_KEY, future);
@@ -77,14 +78,16 @@
       cache.put(fqn3, ExpirationAlgorithmConfig.EXPIRATION_KEY, future);
       cache.put(fqn4, "foo", "bar");
 
-      waitForEviction(cache, 30, TimeUnit.SECONDS, fqn2);
+      ec.startEviction();
       assertNotNull(cache.getNode(fqn1));
       assertNull(cache.getNode(fqn2));
       assertNotNull(cache.getNode(fqn3));
       assertNotNull(cache.getNode(fqn4));
 
+      Thread.sleep(1500);
+      ec.startEviction();
+
       log.info("should remove 1 and 3 now");
-      waitForEviction(cache, 30, TimeUnit.SECONDS, fqn1, fqn3);
       assertNull(cache.getNode(fqn1));
       assertNull(cache.getNode(fqn3));
    }
@@ -106,25 +109,4 @@
          cache.removeNode(Fqn.ROOT);
       }
    }
-
-   @Test (invocationCount = 5, successPercentage = 80)
-   public void testMaxNodes() throws Exception
-   {
-      log.info("set max nodes to 2, expire soonest to expire first");
-      EvictionRegionConfig regionConfig = cache.getRegionManager().getAllRegions(Region.Type.EVICTION).get(0).getEvictionRegionConfig();
-      ExpirationAlgorithmConfig ec = (ExpirationAlgorithmConfig) regionConfig.getEvictionAlgorithmConfig();
-      ec.setMaxNodes(2);
-      Long future2 = future + 500;
-      cache.put(fqn1, ExpirationAlgorithmConfig.EXPIRATION_KEY, future2);
-      cache.put(fqn2, ExpirationAlgorithmConfig.EXPIRATION_KEY, future2);
-      cache.put(fqn3, ExpirationAlgorithmConfig.EXPIRATION_KEY, future);
-      cache.put(fqn4, ExpirationAlgorithmConfig.EXPIRATION_KEY, past);
-      assertEquals(5, cache.getNumberOfNodes());
-      assert waitForEviction(cache, 30, TimeUnit.SECONDS, fqn3) : "Eviction event not received!";
-      assertNotNull(cache.getNode(fqn1));
-      assertNotNull(cache.getNode(fqn2));
-      assertNull(cache.getNode(fqn3));
-      assertNull(cache.getNode(fqn4));
-   }
-
 }




More information about the jbosscache-commits mailing list