Test GrContextOptions persistent cache on linux/quadrop400 bots.

Change-Id: I181ed6d294774a9c6886fde8252bfdde99adc572
Reviewed-on: https://skia-review.googlesource.com/140982
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index d524b1b..4f139eb 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -1653,7 +1653,7 @@
     if (!refErr.isEmpty()) {
         return refErr;
     }
-    SkASSERT(memoryCache.numCacheMisses());
+    SkASSERT(!memoryCache.numCacheMisses());
 
     return compare_bitmaps(reference, *dst);
 }
diff --git a/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1.json b/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1.json
index 5d0a37c..b83a2a8 100644
--- a/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1.json
+++ b/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1.json
@@ -270,6 +270,10 @@
       "image",
       "_",
       "_",
+      "gltestpersistentcache",
+      "gm",
+      "_",
+      "atlastext",
       "_",
       "svg",
       "_",
diff --git a/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3.json b/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3.json
index fa734bd..89fc001 100644
--- a/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3.json
+++ b/infra/bots/recipes/test.expected/Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3.json
@@ -270,6 +270,10 @@
       "image",
       "_",
       "_",
+      "gltestpersistentcache",
+      "gm",
+      "_",
+      "atlastext",
       "_",
       "svg",
       "_",
diff --git a/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json b/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
index 7efbeb3..5c828f4 100644
--- a/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
+++ b/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
@@ -185,6 +185,7 @@
       "glsrgb",
       "glmsaa8",
       "gl1010102",
+      "gltestpersistentcache",
       "--src",
       "tests",
       "gm",
@@ -196,6 +197,10 @@
       "image",
       "_",
       "_",
+      "gltestpersistentcache",
+      "gm",
+      "_",
+      "atlastext",
       "_",
       "svg",
       "_",
diff --git a/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41.json b/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41.json
index cc3ad73..17985b4 100644
--- a/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41.json
+++ b/infra/bots/recipes/test.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41.json
@@ -185,6 +185,7 @@
       "glsrgb",
       "glmsaa8",
       "gl1010102",
+      "gltestpersistentcache",
       "--src",
       "tests",
       "gm",
@@ -196,6 +197,10 @@
       "image",
       "_",
       "_",
+      "gltestpersistentcache",
+      "gm",
+      "_",
+      "atlastext",
       "_",
       "svg",
       "_",
diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py
index b8f0dea..e4278a9 100644
--- a/infra/bots/recipes/test.py
+++ b/infra/bots/recipes/test.py
@@ -246,16 +246,19 @@
     if 'Vulkan' in bot:
       configs = ['vk']
 
-    # Test 1010102 on our Linux/NVIDIA bots
+    # Test 1010102 on our Linux/NVIDIA bots and the persistent cache config
+    # on the GL bots.
     if 'QuadroP400' in bot and api.vars.is_linux:
       if 'Vulkan' in bot:
         configs.append('vk1010102')
         # Decoding transparent images to 1010102 just looks bad
         blacklist('vk1010102 image _ _')
       else:
-        configs.append('gl1010102')
+        configs.extend(['gl1010102', 'gltestpersistentcache'])
         # Decoding transparent images to 1010102 just looks bad
         blacklist('gl1010102 image _ _')
+        # This test produces slightly different pixels run to run on NV.
+        blacklist('gltestpersistentcache gm _ atlastext')
 
     if 'ChromeOS' in bot:
       # Just run GLES for now - maybe add gles_msaa4 in the future
diff --git a/tools/LsanSuppressions.cpp b/tools/LsanSuppressions.cpp
index c81184f..0ebcb30 100644
--- a/tools/LsanSuppressions.cpp
+++ b/tools/LsanSuppressions.cpp
@@ -19,6 +19,7 @@
     const char* __lsan_default_suppressions() {
         return "leak:libfontconfig\n"    // FontConfig looks like it leaks, but it doesn't.
                "leak:libGL.so\n"         // For NVidia driver.
+               "leak:libGLX_nvidia.so\n" // For NVidia driver.
                "leak:__strdup\n"         // An eternal mystery, skia:2916.
                ;
     }