[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