Add a mechanism for GMs to silently exclude themselves from Gold

This is useful, for example, when trying to test a hardware feature
that isn't supported in the current context.

Bug: skia:8731
Change-Id: I9a363159300c92e4039bfd05400238c27002efb1
Reviewed-on: https://skia-review.googlesource.com/c/189133
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp
index 2249b51..a22c36c 100644
--- a/gm/fontmgr.cpp
+++ b/gm/fontmgr.cpp
@@ -172,7 +172,7 @@
         }
     }
 
-    void onDraw(SkCanvas* canvas) override {
+    DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override {
         SkFont font;
         font.setEdging(SkFont::Edging::kSubpixelAntiAlias);
         font.setSubpixel(true);
@@ -190,14 +190,15 @@
             }
         }
         if (nullptr == fset.get()) {
-            DrawFailureMessage(canvas, "No SkFontStyleSet");
-            return;
+            *errorMsg = "No SkFontStyleSet";
+            return DrawResult::kFail;
         }
 
         canvas->translate(20, 40);
         this->exploreFamily(canvas, font, fset.get());
         canvas->translate(150, 0);
         this->iterateFamily(canvas, font, fset.get());
+        return DrawResult::kOk;
     }
 
 private: