SkRemoteGlyphCache  Add tracing to diff canvas

Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.

Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
diff --git a/tests/SkRemoteGlyphCacheTest.cpp b/tests/SkRemoteGlyphCacheTest.cpp
index 7ffc68a..51dd5b5 100644
--- a/tests/SkRemoteGlyphCacheTest.cpp
+++ b/tests/SkRemoteGlyphCacheTest.cpp
@@ -93,7 +93,7 @@
         SkAutoMutexExclusive l(fMutex);
 
         for (uint32_t i = 0; i <= SkStrikeClient::CacheMissType::kLast; ++i) {
-            if (fCacheMissCount[i] > 0) return true;
+            if (fCacheMissCount[i] > 0) { return true; }
         }
         return false;
     }
@@ -211,7 +211,19 @@
     auto props = FindSurfaceProps(ctxInfo.grContext());
     SkTextBlobCacheDiffCanvas cache_diff_canvas(10, 10, props, &server,
                                                 ctxInfo.grContext()->supportsDistanceFieldText());
+    #ifdef SK_CAPTURE_DRAW_TEXT_BLOB
+    {
+        SkDynamicMemoryWStream wStream;
+        server.fCapture.reset(new SkTextBlobTrace::Capture);
+        cache_diff_canvas.drawTextBlob(serverBlob.get(), 0, 0, paint);
+        server.fCapture->dump(&wStream);
+        std::unique_ptr<SkStreamAsset> stream = wStream.detachAsStream();
+        std::vector<SkTextBlobTrace::Record> trace = SkTextBlobTrace::CreateBlobTrace(stream.get());
+        REPORTER_ASSERT(reporter, trace.size() == 1);
+    }
+    #else
     cache_diff_canvas.drawTextBlob(serverBlob.get(), 0, 0, paint);
+    #endif
 
     std::vector<uint8_t> serverStrikeData;
     server.writeStrikeData(&serverStrikeData);