Revert of Add mock context and use in ResourceCacheTest. (patchset #4 id:60001 of https://codereview.chromium.org/702083003/)

Reason for revert:
Breaking tests

Original issue's description:
> Add mock context and use in ResourceCacheTest.
>
> BUG=skia:2889
>
> Committed: https://skia.googlesource.com/skia/+/820dd6c335411aad889c1d7e8a857642ecd87e30

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2889

Review URL: https://codereview.chromium.org/704563004
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 2adc842..464f36d 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -63,11 +63,6 @@
      */
     static GrContext* Create(GrBackend, GrBackendContext, const Options* opts = NULL);
 
-    /**
-     * Only defined in test apps.
-     */
-    static GrContext* CreateMockContext();
-
     virtual ~GrContext();
 
     /**
@@ -983,8 +978,6 @@
 
     GrContext(const Options&); // init must be called after the constructor.
     bool init(GrBackend, GrBackendContext);
-    void initMockContext();
-    void initCommon();
 
     void setupDrawBuffer();
 
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index a456a79..5891840 100755
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -121,11 +121,7 @@
     if (NULL == fGpu) {
         return false;
     }
-    this->initCommon();
-    return true;
-}
 
-void GrContext::initCommon() {
     fDrawState = SkNEW(GrDrawState);
     fGpu->setDrawState(fDrawState);
 
@@ -145,6 +141,8 @@
     fDidTestPMConversions = false;
 
     this->setupDrawBuffer();
+
+    return true;
 }
 
 GrContext::~GrContext() {
@@ -158,14 +156,14 @@
         (*fCleanUpData[i].fFunc)(this, fCleanUpData[i].fInfo);
     }
 
-    SkDELETE(fResourceCache2);
+    delete fResourceCache2;
     fResourceCache2 = NULL;
-    SkDELETE(fResourceCache);
+    delete fResourceCache;
     fResourceCache = NULL;
-    SkDELETE(fFontCache);
-    SkDELETE(fDrawBuffer);
-    SkDELETE(fDrawBufferVBAllocPool);
-    SkDELETE(fDrawBufferIBAllocPool);
+    delete fFontCache;
+    delete fDrawBuffer;
+    delete fDrawBufferVBAllocPool;
+    delete fDrawBufferIBAllocPool;
 
     fAARectRenderer->unref();
     fOvalRenderer->unref();
diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp
index efb37ca..6013b16 100644
--- a/src/gpu/GrTest.cpp
+++ b/src/gpu/GrTest.cpp
@@ -40,138 +40,3 @@
 void GrContext::purgeAllUnlockedResources() {
     fResourceCache->purgeAllUnlocked();
 }
-
-///////////////////////////////////////////////////////////////////////////////
-// Code for the mock context. It's built on a mock GrGpu class that does nothing.
-////
-
-#include "GrBufferAllocPool.h"
-#include "GrInOrderDrawBuffer.h"
-#include "GrGpu.h"
-
-class MockGpu : public GrGpu {
-public:
-    MockGpu(GrContext* context) : INHERITED(context) { fCaps.reset(SkNEW(GrDrawTargetCaps)); }
-    virtual ~MockGpu() { }
-    virtual bool canWriteTexturePixels(const GrTexture*,
-                                       GrPixelConfig srcConfig) const SK_OVERRIDE {
-        return true;
-    }
-
-    virtual bool readPixelsWillPayForYFlip(GrRenderTarget* renderTarget,
-                                           int left, int top,
-                                           int width, int height,
-                                           GrPixelConfig config,
-                                           size_t rowBytes) const SK_OVERRIDE { return false; }
-    virtual void buildProgramDesc(const GrOptDrawState&,
-                                  const GrProgramDesc::DescInfo&,
-                                  GrGpu::DrawType,
-                                  const GrDeviceCoordTexture* dstCopy,
-                                  GrProgramDesc* desc) SK_OVERRIDE { }
-
-    virtual void discard(GrRenderTarget*) SK_OVERRIDE { }
-
-private:
-    virtual void onResetContext(uint32_t resetBits) { };
-    virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc,
-                                       const void* srcData,
-                                       size_t rowBytes)  SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc,
-                                                 const void* srcData)  SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&)  SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual GrRenderTarget* onWrapBackendRenderTarget(
-                                    const GrBackendRenderTargetDesc&) SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic)  SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic)  SK_OVERRIDE {
-        return NULL;
-    }
-
-    virtual void onGpuClear(GrRenderTarget*, const SkIRect* rect, GrColor color,
-                            bool canIgnoreRect)  SK_OVERRIDE { }
-
-    virtual void onClearStencilClip(GrRenderTarget*,
-                                    const SkIRect& rect,
-                                    bool insideClip)  SK_OVERRIDE { }
-
-                                    virtual void onGpuDraw(const DrawInfo&)  SK_OVERRIDE { }
-    virtual bool onReadPixels(GrRenderTarget* target,
-                              int left, int top, int width, int height,
-                              GrPixelConfig,
-                              void* buffer,
-                              size_t rowBytes)  SK_OVERRIDE {
-        return false;
-    }
-
-    virtual bool onWriteTexturePixels(GrTexture* texture,
-                                      int left, int top, int width, int height,
-                                      GrPixelConfig config, const void* buffer,
-                                      size_t rowBytes)  SK_OVERRIDE {
-        return false;
-    }
-
-    virtual void onResolveRenderTarget(GrRenderTarget* target)  SK_OVERRIDE {
-        return;
-    }
-
-    virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width,
-                                                    int height) SK_OVERRIDE {
-        return false;
-    }
-
-    virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTarget*)  SK_OVERRIDE {
-        return false;
-    }
-
-    virtual bool flushGraphicsState(DrawType,
-                                    const GrClipMaskManager::ScissorState&,
-                                    const GrDeviceCoordTexture* dstCopy)  SK_OVERRIDE {
-        return false;
-    }
-
-    virtual void clearStencil(GrRenderTarget* target)  SK_OVERRIDE  { }
-
-    virtual void didAddGpuTraceMarker() SK_OVERRIDE { }
-    virtual void didRemoveGpuTraceMarker() SK_OVERRIDE { }
-
-    typedef GrGpu INHERITED;
-};
-
-GrContext* GrContext::CreateMockContext() {
-    GrContext* context = SkNEW_ARGS(GrContext, (Options()));
-
-    context->initMockContext();
-    return context;
-}
-
-void GrContext::initMockContext() {
-    SkASSERT(NULL == fGpu);
-    fGpu = SkNEW_ARGS(MockGpu, (this));
-    SkASSERT(fGpu);
-    this->initCommon();
-
-    // We delete these because we want to test the cache starting with zero resources. Also, none of
-    // these objects are required for any of tests that use this context. TODO: make stop allocating
-    // resources in the buffer pools.
-    SkDELETE(fDrawBuffer);
-    SkDELETE(fDrawBufferVBAllocPool);
-    SkDELETE(fDrawBufferIBAllocPool);
-
-    fDrawBuffer = NULL;
-    fDrawBufferVBAllocPool = NULL;
-    fDrawBufferIBAllocPool = NULL;
-}
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index 44e4180..4e6e281 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -11,7 +11,6 @@
 #include "GrContextFactory.h"
 #include "GrGpu.h"
 #include "GrResourceCache.h"
-#include "GrResourceCache2.h"
 #include "SkCanvas.h"
 #include "SkSurface.h"
 #include "Test.h"
@@ -20,7 +19,9 @@
 static const int gHeight = 480;
 
 ////////////////////////////////////////////////////////////////////////////////
-static void test_cache(skiatest::Reporter* reporter, GrContext* context, SkCanvas* canvas) {
+static void test_cache(skiatest::Reporter* reporter,
+                       GrContext* context,
+                       SkCanvas* canvas) {
     const SkIRect size = SkIRect::MakeWH(gWidth, gHeight);
 
     SkBitmap src;
@@ -70,12 +71,12 @@
         , fCache(NULL)
         , fToDelete(NULL)
         , fSize(size) {
-        ++fNumAlive;
+        ++fAlive;
         this->registerWithCache();
     }
 
     ~TestResource() {
-        --fNumAlive;
+        --fAlive;
         if (fToDelete) {
             // Breaks our little 2-element cycle below.
             fToDelete->setDeleteWhenDestroyed(NULL, NULL);
@@ -91,7 +92,7 @@
 
     size_t gpuMemorySize() const SK_OVERRIDE { return fSize; }
 
-    static int NumAlive() { return fNumAlive; }
+    static int alive() { return fAlive; }
 
     void setDeleteWhenDestroyed(GrResourceCache* cache, TestResource* resource) {
         fCache = cache;
@@ -102,11 +103,11 @@
     GrResourceCache* fCache;
     TestResource* fToDelete;
     size_t fSize;
-    static int fNumAlive;
+    static int fAlive;
 
     typedef GrGpuResource INHERITED;
 };
-int TestResource::fNumAlive = 0;
+int TestResource::fAlive = 0;
 
 static void test_purge_invalidated(skiatest::Reporter* reporter, GrContext* context) {
     GrCacheID::Domain domain = GrCacheID::GenerateDomain();
@@ -115,34 +116,31 @@
     keyData.fData64[1] = 18;
     GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
     GrResourceKey key(GrCacheID(domain, keyData), t, 0);
-    
-    context->setResourceCacheLimits(5, 30000);
-    GrResourceCache* cache = context->getResourceCache();
-    cache->purgeAllUnlocked();
-    SkASSERT(0 == cache->getCachedResourceCount() && 0 == cache->getCachedResourceBytes());
+
+    GrResourceCache cache(context->getGpu()->caps(), 5, 30000);
 
     // Add two resources with the same key that delete each other from the cache when destroyed.
     TestResource* a = new TestResource(context->getGpu());
     TestResource* b = new TestResource(context->getGpu());
-    cache->addResource(key, a);
-    cache->addResource(key, b);
+    cache.addResource(key, a);
+    cache.addResource(key, b);
     // Circle back.
-    a->setDeleteWhenDestroyed(cache, b);
-    b->setDeleteWhenDestroyed(cache, a);
+    a->setDeleteWhenDestroyed(&cache, b);
+    b->setDeleteWhenDestroyed(&cache, a);
     a->unref();
     b->unref();
 
     // Add a third independent resource also with the same key.
     GrGpuResource* r = new TestResource(context->getGpu());
-    cache->addResource(key, r);
+    cache.addResource(key, r);
     r->unref();
 
     // Invalidate all three, all three should be purged and destroyed.
-    REPORTER_ASSERT(reporter, 3 == TestResource::NumAlive());
+    REPORTER_ASSERT(reporter, 3 == TestResource::alive());
     const GrResourceInvalidatedMessage msg = { key };
     SkMessageBus<GrResourceInvalidatedMessage>::Post(msg);
-    cache->purgeAsNeeded();
-    REPORTER_ASSERT(reporter, 0 == TestResource::NumAlive());
+    cache.purgeAsNeeded();
+    REPORTER_ASSERT(reporter, 0 == TestResource::alive());
 }
 
 static void test_cache_delete_on_destruction(skiatest::Reporter* reporter,
@@ -156,44 +154,38 @@
     GrResourceKey key(GrCacheID(domain, keyData), t, 0);
 
     {
-        context->setResourceCacheLimits(3, 30000);
-        GrResourceCache* cache = context->getResourceCache();
-        cache->purgeAllUnlocked();
-        SkASSERT(0 == cache->getCachedResourceCount() && 0 == cache->getCachedResourceBytes());
+        {
+            GrResourceCache cache(context->getGpu()->caps(), 3, 30000);
+            TestResource* a = new TestResource(context->getGpu());
+            TestResource* b = new TestResource(context->getGpu());
+            cache.addResource(key, a);
+            cache.addResource(key, b);
 
-        TestResource* a = new TestResource(context->getGpu());
-        TestResource* b = new TestResource(context->getGpu());
-        cache->addResource(key, a);
-        cache->addResource(key, b);
+            a->setDeleteWhenDestroyed(&cache, b);
+            b->setDeleteWhenDestroyed(&cache, a);
 
-        a->setDeleteWhenDestroyed(cache, b);
-        b->setDeleteWhenDestroyed(cache, a);
-
-        a->unref();
-        b->unref();
-        REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive());
-        cache->purgeAllUnlocked();
-        REPORTER_ASSERT(reporter, 0 == TestResource::NumAlive());
+            a->unref();
+            b->unref();
+            REPORTER_ASSERT(reporter, 2 == TestResource::alive());
+        }
+        REPORTER_ASSERT(reporter, 0 == TestResource::alive());
     }
     {
-        context->setResourceCacheLimits(3, 30000);
-        GrResourceCache* cache = context->getResourceCache();
-        cache->purgeAllUnlocked();
-        SkASSERT(0 == cache->getCachedResourceCount() && 0 == cache->getCachedResourceBytes());
+        GrResourceCache cache(context->getGpu()->caps(), 3, 30000);
         TestResource* a = new TestResource(context->getGpu());
         TestResource* b = new TestResource(context->getGpu());
-        cache->addResource(key, a);
-        cache->addResource(key, b);
+        cache.addResource(key, a);
+        cache.addResource(key, b);
 
-        a->setDeleteWhenDestroyed(cache, b);
-        b->setDeleteWhenDestroyed(cache, a);
+        a->setDeleteWhenDestroyed(&cache, b);
+        b->setDeleteWhenDestroyed(&cache, a);
 
         a->unref();
         b->unref();
 
-        cache->deleteResource(a->getCacheEntry());
+        cache.deleteResource(a->getCacheEntry());
 
-        REPORTER_ASSERT(reporter, 0 == TestResource::NumAlive());
+        REPORTER_ASSERT(reporter, 0 == TestResource::alive());
     }
 }
 
@@ -214,54 +206,48 @@
 
     // Test changing resources sizes (both increase & decrease).
     {
-        context->setResourceCacheLimits(3, 30000);
-        GrResourceCache* cache = context->getResourceCache();
-        cache->purgeAllUnlocked();
-        SkASSERT(0 == cache->getCachedResourceCount() && 0 == cache->getCachedResourceBytes());
+        GrResourceCache cache(context->getGpu()->caps(), 2, 300);
 
         TestResource* a = new TestResource(context->getGpu());
         a->setSize(100); // Test didChangeGpuMemorySize() when not in the cache.
-        cache->addResource(key1, a);
+        cache.addResource(key1, a);
         a->unref();
 
         TestResource* b = new TestResource(context->getGpu());
         b->setSize(100);
-        cache->addResource(key2, b);
+        cache.addResource(key2, b);
         b->unref();
 
-        REPORTER_ASSERT(reporter, 200 == cache->getCachedResourceBytes());
-        REPORTER_ASSERT(reporter, 2 == cache->getCachedResourceCount());
+        REPORTER_ASSERT(reporter, 200 == cache.getCachedResourceBytes());
+        REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
 
-        static_cast<TestResource*>(cache->find(key2))->setSize(200);
-        static_cast<TestResource*>(cache->find(key1))->setSize(50);
+        static_cast<TestResource*>(cache.find(key2))->setSize(200);
+        static_cast<TestResource*>(cache.find(key1))->setSize(50);
 
-        REPORTER_ASSERT(reporter, 250 == cache->getCachedResourceBytes());
-        REPORTER_ASSERT(reporter, 2 == cache->getCachedResourceCount());
+        REPORTER_ASSERT(reporter, 250 == cache.getCachedResourceBytes());
+        REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
     }
 
     // Test increasing a resources size beyond the cache budget.
     {
-        context->setResourceCacheLimits(2, 300);
-        GrResourceCache* cache = context->getResourceCache();
-        cache->purgeAllUnlocked();
-        SkASSERT(0 == cache->getCachedResourceCount() && 0 == cache->getCachedResourceBytes());
+        GrResourceCache cache(context->getGpu()->caps(), 2, 300);
 
         TestResource* a = new TestResource(context->getGpu(), 100);
-        cache->addResource(key1, a);
+        cache.addResource(key1, a);
         a->unref();
 
         TestResource* b = new TestResource(context->getGpu(), 100);
-        cache->addResource(key2, b);
+        cache.addResource(key2, b);
         b->unref();
 
-        REPORTER_ASSERT(reporter, 200 == cache->getCachedResourceBytes());
-        REPORTER_ASSERT(reporter, 2 == cache->getCachedResourceCount());
+        REPORTER_ASSERT(reporter, 200 == cache.getCachedResourceBytes());
+        REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
 
-        static_cast<TestResource*>(cache->find(key2))->setSize(201);
-        REPORTER_ASSERT(reporter, !cache->hasKey(key1));
+        static_cast<TestResource*>(cache.find(key2))->setSize(201);
+        REPORTER_ASSERT(reporter, NULL == cache.find(key1));
 
-        REPORTER_ASSERT(reporter, 201 == cache->getCachedResourceBytes());
-        REPORTER_ASSERT(reporter, 1 == cache->getCachedResourceCount());
+        REPORTER_ASSERT(reporter, 201 == cache.getCachedResourceBytes());
+        REPORTER_ASSERT(reporter, 1 == cache.getCachedResourceCount());
     }
 }
 
@@ -273,6 +259,10 @@
             continue;
         }
         GrContext* context = factory->get(glType);
+        if (NULL == context) {
+            continue;
+        }
+
         GrSurfaceDesc desc;
         desc.fConfig = kSkia8888_GrPixelConfig;
         desc.fFlags = kRenderTarget_GrSurfaceFlag;
@@ -280,19 +270,12 @@
         desc.fHeight = gHeight;
         SkImageInfo info = SkImageInfo::MakeN32Premul(gWidth, gHeight);
         SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(context, info));
+
         test_cache(reporter, context, surface->getCanvas());
+        test_purge_invalidated(reporter, context);
+        test_cache_delete_on_destruction(reporter, context);
+        test_resource_size_changed(reporter, context);
     }
-
-    // The below tests use a mock context.
-    SkAutoTUnref<GrContext> context(GrContext::CreateMockContext());
-    REPORTER_ASSERT(reporter, SkToBool(context));
-    if (NULL == context) {
-        return;
-    }
-
-    test_purge_invalidated(reporter, context);
-    test_cache_delete_on_destruction(reporter, context);
-    test_resource_size_changed(reporter, context);
 }
 
 #endif