| Index: content/public/android/javatests/src/org/chromium/content/common/CleanupReferenceTest.java
|
| diff --git a/content/public/android/javatests/src/org/chromium/content/common/CleanupReferenceTest.java b/content/public/android/javatests/src/org/chromium/content/common/CleanupReferenceTest.java
|
| deleted file mode 100644
|
| index 6f56449195e530d9c50cfec672bce130a4831a69..0000000000000000000000000000000000000000
|
| --- a/content/public/android/javatests/src/org/chromium/content/common/CleanupReferenceTest.java
|
| +++ /dev/null
|
| @@ -1,97 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.content.common;
|
| -
|
| -import android.test.InstrumentationTestCase;
|
| -import android.test.suitebuilder.annotation.SmallTest;
|
| -
|
| -import org.chromium.base.test.util.Feature;
|
| -import org.chromium.content.browser.test.util.Criteria;
|
| -import org.chromium.content.browser.test.util.CriteriaHelper;
|
| -
|
| -import java.util.concurrent.atomic.AtomicInteger;
|
| -
|
| -public class CleanupReferenceTest extends InstrumentationTestCase {
|
| -
|
| - private static AtomicInteger sObjectCount = new AtomicInteger();
|
| -
|
| - private static class ReferredObject {
|
| -
|
| - private CleanupReference mRef;
|
| -
|
| - // Remember: this MUST be a static class, to avoid an implicit ref back to the
|
| - // owning ReferredObject instance which would defeat GC of that object.
|
| - private static class DestroyRunnable implements Runnable {
|
| - @Override
|
| - public void run() {
|
| - sObjectCount.decrementAndGet();
|
| - }
|
| - };
|
| -
|
| - public ReferredObject() {
|
| - sObjectCount.incrementAndGet();
|
| - mRef = new CleanupReference(this, new DestroyRunnable());
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void setUp() throws Exception {
|
| - super.setUp();
|
| - sObjectCount.set(0);
|
| - }
|
| -
|
| - private void collectGarbage() {
|
| - // While this is only a 'hint' to the VM, it's generally effective and sufficient on
|
| - // dalvik. If this changes in future, maybe try allocating a few gargantuan objects
|
| - // too, to force the GC to work.
|
| - System.gc();
|
| - }
|
| -
|
| - @SmallTest
|
| - @Feature({"AndroidWebView"})
|
| - public void testCreateSingle() throws Throwable {
|
| - assertEquals(0, sObjectCount.get());
|
| -
|
| - ReferredObject instance = new ReferredObject();
|
| - assertEquals(1, sObjectCount.get());
|
| -
|
| - instance = null;
|
| - // Ensure compiler / instrumentation does not strip out the assignment.
|
| - assertTrue(instance == null);
|
| - collectGarbage();
|
| - assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
|
| - @Override
|
| - public boolean isSatisfied() {
|
| - return sObjectCount.get() == 0;
|
| - }
|
| - }));
|
| - }
|
| -
|
| - @SmallTest
|
| - @Feature({"AndroidWebView"})
|
| - public void testCreateMany() throws Throwable {
|
| - assertEquals(0, sObjectCount.get());
|
| -
|
| - final int INSTANCE_COUNT = 20;
|
| - ReferredObject[] instances = new ReferredObject[INSTANCE_COUNT];
|
| -
|
| - for (int i = 0; i < INSTANCE_COUNT; ++i) {
|
| - instances[i] = new ReferredObject();
|
| - assertEquals(i + 1, sObjectCount.get());
|
| - }
|
| -
|
| - instances = null;
|
| - // Ensure compiler / instrumentation does not strip out the assignment.
|
| - assertTrue(instances == null);
|
| - collectGarbage();
|
| - assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
|
| - @Override
|
| - public boolean isSatisfied() {
|
| - return sObjectCount.get() == 0;
|
| - }
|
| - }));
|
| - }
|
| -
|
| -}
|
|
|