Index: dm/DM.cpp |
diff --git a/dm/DM.cpp b/dm/DM.cpp |
index 9dbd43adda05367aa7ec1fccbda964de73593d59..e10ccea5ce0a9a7da9bd85d94214cdca039bdc6a 100644 |
--- a/dm/DM.cpp |
+++ b/dm/DM.cpp |
@@ -923,7 +923,7 @@ static Sink* create_via(const SkString& tag, Sink* wrapped) { |
return nullptr; |
} |
-static void gather_sinks() { |
+static bool gather_sinks() { |
SkCommandLineConfigArray configs; |
ParseConfigs(FLAGS_config, &configs); |
for (int i = 0; i < configs.count(); i++) { |
@@ -952,6 +952,11 @@ static void gather_sinks() { |
push_sink(config, sink); |
} |
} |
+ |
+ // If no configs were requested (just running tests, perhaps?), then we're okay. |
+ // Otherwise, make sure that at least one sink was constructed correctly. This catches |
+ // the case of bots without a GPU being assigned GPU configs. |
+ return (configs.count() == 0) || (gSinks.count() > 0); |
} |
static bool dump_png(SkBitmap bitmap, const char* path, const char* md5) { |
@@ -1323,7 +1328,9 @@ int dm_main() { |
if (!gather_srcs()) { |
return 1; |
} |
- gather_sinks(); |
+ if (!gather_sinks()) { |
+ return 1; |
+ } |
gather_tests(); |
gPending = gSrcs.count() * gSinks.count() + gParallelTests.count() + gSerialTests.count(); |
info("%d srcs * %d sinks + %d tests == %d tasks", |