diff options
author | Paul Duffin <paulduffin@google.com> | 2015-01-19 12:46:40 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-01-19 12:46:40 +0000 |
commit | aab56800fcb95e9b1a2d653588b14158080cc6b4 (patch) | |
tree | 7365392c3ea77742021cf187acfd465f9bb774ab /guava-tests/test/com/google/common/cache/LocalCacheTest.java | |
parent | 6fa98dbaae182b511fbeb331e08f5fb827715ea8 (diff) | |
parent | 84fb43aa6a1e752487f2624055ff26b1b6b7c043 (diff) | |
download | android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.tar.gz android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.tar.bz2 android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.zip |
am 84fb43aa: Merge "Revert "Upgraded Guava to unmodified v14.0.1""
* commit '84fb43aa6a1e752487f2624055ff26b1b6b7c043':
Revert "Upgraded Guava to unmodified v14.0.1"
Diffstat (limited to 'guava-tests/test/com/google/common/cache/LocalCacheTest.java')
-rw-r--r-- | guava-tests/test/com/google/common/cache/LocalCacheTest.java | 112 |
1 files changed, 34 insertions, 78 deletions
diff --git a/guava-tests/test/com/google/common/cache/LocalCacheTest.java b/guava-tests/test/com/google/common/cache/LocalCacheTest.java index 731de62..7f926e3 100644 --- a/guava-tests/test/com/google/common/cache/LocalCacheTest.java +++ b/guava-tests/test/com/google/common/cache/LocalCacheTest.java @@ -30,6 +30,7 @@ import static com.google.common.collect.Maps.immutableEntry; import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.TimeUnit.SECONDS; +import static org.easymock.EasyMock.createMock; import com.google.common.base.Equivalence; import com.google.common.base.Ticker; @@ -252,7 +253,7 @@ public class LocalCacheTest extends TestCase { public void testSetMaximumSize() { // vary maximumSize wrt concurrencyLevel - for (int maxSize = 1; maxSize < 100; maxSize++) { + for (int maxSize = 1; maxSize < 8; maxSize++) { checkMaximumSize(1, 8, maxSize); checkMaximumSize(2, 8, maxSize); checkMaximumSize(4, 8, maxSize); @@ -280,8 +281,6 @@ public class LocalCacheTest extends TestCase { .initialCapacity(initialCapacity) .maximumSize(maxSize)); long totalCapacity = 0; - assertTrue("segments=" + map.segments.length + ", maxSize=" + maxSize, - map.segments.length <= Math.max(1, maxSize / 10)); for (int i = 0; i < map.segments.length; i++) { totalCapacity += map.segments[i].maxSegmentWeight; } @@ -292,8 +291,6 @@ public class LocalCacheTest extends TestCase { .initialCapacity(initialCapacity) .maximumWeight(maxSize) .weigher(constantWeigher(1))); - assertTrue("segments=" + map.segments.length + ", maxSize=" + maxSize, - map.segments.length <= Math.max(1, maxSize / 10)); totalCapacity = 0; for (int i = 0; i < map.segments.length; i++) { totalCapacity += map.segments[i].maxSegmentWeight; @@ -485,7 +482,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value, entry); entry.setValueReference(valueRef); table.set(index, entry); segment.count++; @@ -514,7 +511,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value, entry); entry.setValueReference(valueRef); table.set(index, entry); segment.count++; @@ -713,11 +710,11 @@ public class LocalCacheTest extends TestCase { // already loading DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> valueRef = DummyValueReference.create(null); + DummyValueReference<Object, Object> valueRef = DummyValueReference.create(null, entry); valueRef.setLoading(true); entry.setValueReference(valueRef); table.set(index, entry); - assertNull(segment.refresh(key, hash, identityLoader(), false)); + assertNull(segment.refresh(key, hash, identityLoader())); } // Removal listener tests @@ -822,7 +819,7 @@ public class LocalCacheTest extends TestCase { QueuingRemovalListener<Object, Object> listener = queuingRemovalListener(); LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder() .concurrencyLevel(1) - .expireAfterWrite(3, TimeUnit.NANOSECONDS) + .expireAfterWrite(2, TimeUnit.NANOSECONDS) .ticker(ticker) .removalListener(listener)); assertTrue(listener.isEmpty()); @@ -1051,7 +1048,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); // no entry @@ -1095,7 +1092,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); // no entry @@ -1143,7 +1140,7 @@ public class LocalCacheTest extends TestCase { // cleared ReferenceEntry<Object, Object> entry = segment.getEntry(key, hash); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); assertSame(oldValue, segment.get(key, hash)); oldValueRef.clear(); @@ -1175,7 +1172,7 @@ public class LocalCacheTest extends TestCase { // cleared ReferenceEntry<Object, Object> entry = segment.getEntry(key, hash); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); assertSame(oldValue, segment.get(key, hash)); oldValueRef.clear(); @@ -1271,7 +1268,7 @@ public class LocalCacheTest extends TestCase { // replaced Object value4 = new Object(); - DummyValueReference<Object, Object> value3Ref = DummyValueReference.create(value3); + DummyValueReference<Object, Object> value3Ref = DummyValueReference.create(value3, entry); valueRef = new LoadingValueReference<Object, Object>(value3Ref); entry.setValueReference(valueRef); table.set(index, entry); @@ -1311,7 +1308,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); // no entry @@ -1351,7 +1348,7 @@ public class LocalCacheTest extends TestCase { int index = hash & (table.length() - 1); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue); + DummyValueReference<Object, Object> oldValueRef = DummyValueReference.create(oldValue, entry); entry.setValueReference(oldValueRef); // no entry @@ -1420,49 +1417,6 @@ public class LocalCacheTest extends TestCase { } } - public void testGetCausesExpansion() throws ExecutionException { - for (int count = 1; count <= 100; count++) { - LocalCache<Object, Object> map = - makeLocalCache(createCacheBuilder().concurrencyLevel(1).initialCapacity(1)); - Segment<Object, Object> segment = map.segments[0]; - assertEquals(1, segment.table.length()); - - for (int i = 0; i < count; i++) { - Object key = new Object(); - final Object value = new Object(); - segment.get(key, key.hashCode(), new CacheLoader<Object, Object>() { - @Override - public Object load(Object key) { - return value; - } - }); - } - assertEquals(count, segment.count); - assertTrue(count <= segment.threshold); - assertTrue(count <= (segment.table.length() * 3 / 4)); - assertTrue(count > (segment.table.length() * 3 / 8)); - } - } - - public void testPutCausesExpansion() { - for (int count = 1; count <= 100; count++) { - LocalCache<Object, Object> map = - makeLocalCache(createCacheBuilder().concurrencyLevel(1).initialCapacity(1)); - Segment<Object, Object> segment = map.segments[0]; - assertEquals(1, segment.table.length()); - - for (int i = 0; i < count; i++) { - Object key = new Object(); - Object value = new Object(); - segment.put(key, key.hashCode(), value, true); - } - assertEquals(count, segment.count); - assertTrue(count <= segment.threshold); - assertTrue(count <= (segment.table.length() * 3 / 4)); - assertTrue(count > (segment.table.length() * 3 / 8)); - } - } - public void testReclaimKey() { CountingRemovalListener<Object, Object> listener = countingRemovalListener(); LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder() @@ -1578,7 +1532,7 @@ public class LocalCacheTest extends TestCase { } // chain all entries together as we only have a single bucket entry = DummyEntry.create(key, hash, entry); - ValueReference<Object, Object> valueRef = DummyValueReference.create(value); + ValueReference<Object, Object> valueRef = DummyValueReference.create(value, entry); entry.setValueReference(valueRef); } segment.table.set(0, entry); @@ -1736,7 +1690,7 @@ public class LocalCacheTest extends TestCase { Object value = new Object(); int hash = map.hash(key); DummyEntry<Object, Object> entry = DummyEntry.create(key, hash, null); - DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> valueRef = DummyValueReference.create(value, entry); entry.setValueReference(valueRef); // reclaim absent @@ -1758,7 +1712,7 @@ public class LocalCacheTest extends TestCase { // reclaim wrong value reference table.set(0, entry); - DummyValueReference<Object, Object> otherValueRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> otherValueRef = DummyValueReference.create(value, entry); entry.setValueReference(otherValueRef); assertFalse(segment.reclaimValue(key, hash, valueRef)); assertEquals(1, listener.getCount()); @@ -1799,7 +1753,7 @@ public class LocalCacheTest extends TestCase { // active Object value = new Object(); - DummyValueReference<Object, Object> previousRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> previousRef = DummyValueReference.create(value, entry); valueRef = new LoadingValueReference<Object, Object>(previousRef); entry.setValueReference(valueRef); table.set(0, entry); @@ -1810,7 +1764,7 @@ public class LocalCacheTest extends TestCase { // wrong value reference table.set(0, entry); - DummyValueReference<Object, Object> otherValueRef = DummyValueReference.create(value); + DummyValueReference<Object, Object> otherValueRef = DummyValueReference.create(value, entry); entry.setValueReference(otherValueRef); assertFalse(segment.removeLoadingValue(key, hash, valueRef)); entry.setValueReference(valueRef); @@ -2085,7 +2039,7 @@ public class LocalCacheTest extends TestCase { LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder() .concurrencyLevel(1) .ticker(ticker) - .expireAfterWrite(2, TimeUnit.NANOSECONDS)); + .expireAfterWrite(1, TimeUnit.NANOSECONDS)); Segment<Object, Object> segment = map.segments[0]; Object key = new Object(); @@ -2124,7 +2078,7 @@ public class LocalCacheTest extends TestCase { LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder() .concurrencyLevel(1) .ticker(ticker) - .expireAfterAccess(2, TimeUnit.NANOSECONDS)); + .expireAfterAccess(1, TimeUnit.NANOSECONDS)); Segment<Object, Object> segment = map.segments[0]; Object key = new Object(); @@ -2517,7 +2471,7 @@ public class LocalCacheTest extends TestCase { private static <K, V> DummyEntry<K, V> createDummyEntry( K key, int hash, V value, ReferenceEntry<K, V> next) { DummyEntry<K, V> entry = DummyEntry.create(key, hash, next); - DummyValueReference<K, V> valueRef = DummyValueReference.create(value); + DummyValueReference<K, V> valueRef = DummyValueReference.create(value, entry); entry.setValueReference(valueRef); return entry; } @@ -2642,23 +2596,26 @@ public class LocalCacheTest extends TestCase { } static class DummyValueReference<K, V> implements ValueReference<K, V> { + final ReferenceEntry<K, V> entry; private V value; boolean loading = false; - public DummyValueReference() { + public DummyValueReference(ReferenceEntry<K, V> entry) { + this(null, entry); this.loading = true; } - public DummyValueReference(V value) { + public DummyValueReference(V value, ReferenceEntry<K, V> entry) { this.value = value; + this.entry = entry; } - public static <K, V> DummyValueReference<K, V> create(V value) { - return new DummyValueReference<K, V>(value); + public static <K, V> DummyValueReference<K, V> create(V value, ReferenceEntry<K, V> entry) { + return new DummyValueReference<K, V>(value, entry); } - public static <K, V> DummyValueReference<K, V> createLoading() { - return new DummyValueReference<K, V>(); + public static <K, V> DummyValueReference<K, V> createLoading(ReferenceEntry<K, V> entry) { + return new DummyValueReference<K, V>(entry); } @Override @@ -2673,13 +2630,12 @@ public class LocalCacheTest extends TestCase { @Override public ReferenceEntry<K, V> getEntry() { - return null; + return entry; } @Override - public ValueReference<K, V> copyFor( - ReferenceQueue<V> queue, V value, ReferenceEntry<K, V> entry) { - return this; + public ValueReference<K, V> copyFor(ReferenceQueue<V> queue, ReferenceEntry<K, V> entry) { + return new DummyValueReference<K, V>(value, entry); } public void setLoading(boolean loading) { |