diff --git a/BUILD.gn b/BUILD.gn
index b84ade9..3f82ffb 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -258,6 +258,7 @@
                              "*",
                              [
                                "public_defines",
+                               "sources_for_tests",
                                "sources_when_disabled",
                                "configs_to_remove",
                              ])
@@ -267,6 +268,31 @@
         configs -= invoker.configs_to_remove
       }
     }
+    if (defined(invoker.sources_for_tests) && skia_enable_tools) {
+      source_set(target_name + "_tests") {
+        check_includes = false
+        forward_variables_from(invoker,
+                               "*",
+                               [
+                                 "public_defines",
+                                 "sources",
+                                 "sources_for_tests",
+                                 "sources_when_disabled",
+                                 "configs_to_remove",
+                               ])
+        testonly = true
+        sources = invoker.sources_for_tests
+        if (!defined(deps)) {
+          deps = []
+        }
+        deps += [ ":test" ]
+        all_dependent_configs = [ ":" + target_name + "_public" ]
+        configs += skia_library_configs
+        if (defined(invoker.configs_to_remove)) {
+          configs -= invoker.configs_to_remove
+        }
+      }
+    }
   } else {
     source_set(target_name) {
       forward_variables_from(invoker,
@@ -279,6 +305,7 @@
                                "libs",
                                "frameworks",
                                "sources",
+                               "sources_for_tests",
                                "sources_when_disabled",
                                "configs_to_remove",
                              ])
@@ -287,6 +314,10 @@
       }
       configs += skia_library_configs
     }
+    if (defined(invoker.sources_for_tests)) {
+      source_set(target_name + "_tests") {
+      }
+    }
   }
 }
 
@@ -327,6 +358,7 @@
     "src/ports/SkFontMgr_android_parser.cpp",
     "src/ports/SkFontMgr_android_parser.h",
   ]
+  sources_for_tests = [ "tests/FontMgrAndroidParserTest.cpp" ]
 }
 optional("fontmgr_android_factory") {
   enabled = skia_enable_fontmgr_android
@@ -399,6 +431,7 @@
   public = [ "include/ports/SkFontMgr_fontconfig.h" ]
   deps = [ ":typeface_freetype" ]
   sources = [ "src/ports/SkFontMgr_fontconfig.cpp" ]
+  sources_for_tests = [ "tests/FontMgrFontConfigTest.cpp" ]
 }
 optional("fontmgr_fontconfig_factory") {
   enabled = skia_enable_fontmgr_fontconfig
@@ -1928,14 +1961,10 @@
     if (skia_use_gl) {
       sources += gl_tests_sources
     }
-    if (!skia_enable_fontmgr_android) {
-      sources -= [ "//tests/FontMgrAndroidParserTest.cpp" ]
-    }
-    if (!skia_enable_fontmgr_fontconfig) {
-      sources -= [ "//tests/FontMgrFontConfigTest.cpp" ]
-    }
     deps = [
       ":flags",
+      ":fontmgr_android_tests",
+      ":fontmgr_fontconfig_tests",
       ":skia",
       ":test",
       ":tool_utils",
diff --git a/gn/tests.gni b/gn/tests.gni
index e9da129..bd55bd2 100644
--- a/gn/tests.gni
+++ b/gn/tests.gni
@@ -84,8 +84,6 @@
   "$_tests/FloatingPointTextureTest.cpp",
   "$_tests/FontHostStreamTest.cpp",
   "$_tests/FontHostTest.cpp",
-  "$_tests/FontMgrAndroidParserTest.cpp",
-  "$_tests/FontMgrFontConfigTest.cpp",
   "$_tests/FontMgrTest.cpp",
   "$_tests/FontNamesTest.cpp",
   "$_tests/FontTest.cpp",
