Add BUILD files for test/.../build/lib{buildeventstream,skylark/...,util/...,windows/..., and others}

Also enable a number of tests that were not previously running on windows, but
that work just fine when enabled.

RELNOTES: None.
PiperOrigin-RevId: 302085725
diff --git a/src/java_tools/buildjar/BUILD b/src/java_tools/buildjar/BUILD
index b095f7e..74f9604 100644
--- a/src/java_tools/buildjar/BUILD
+++ b/src/java_tools/buildjar/BUILD
@@ -14,7 +14,7 @@
         "//src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar:srcs",
         "//src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine:srcs",
     ],
-    visibility = ["//:__subpackages__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 package_group(
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
index 733d479..9ae2038 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
@@ -16,6 +16,7 @@
         "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:srcs",
         "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/BUILD
index a588ec8..b674633 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_binary(
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper/BUILD
index a8a4786..e0d7795 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper/BUILD
@@ -5,10 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*.java"]) + ["BUILD"],
-    visibility = [
-        "//src:__pkg__",
-        "//src/java_tools/buildjar:buildjar_package_group",
-    ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD
index eb500c1..fa6df3e 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD
@@ -59,6 +59,7 @@
     srcs = glob(["**/*.java"]) + [
         "BUILD",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 #
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
index 475f344..fb13c94 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
@@ -17,4 +17,5 @@
     srcs = glob(["**/*.java"]) + [
         "BUILD",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
index f1a86d4..65a1b8b 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
@@ -38,4 +38,5 @@
     ]) + [
         "BUILD",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
index c408ad7..4010c9d 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
@@ -22,4 +22,5 @@
         "BUILD",
         "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/BUILD
index 31d6b11..3c0864b 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/BUILD
@@ -127,4 +127,5 @@
     srcs = glob(["**/*.java"]) + [
         "BUILD",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/BUILD
index d8772a0..dd5c990 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/BUILD
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD
index 73cea18..71eb1a3 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/BUILD
@@ -6,4 +6,5 @@
         "BUILD",
         "//src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD
index 8611285..0b725e9 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD
@@ -80,4 +80,5 @@
     srcs = glob(["*.java"]) + [
         "BUILD",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/BUILD b/src/java_tools/junitrunner/BUILD
index b06806a..938a33f 100644
--- a/src/java_tools/junitrunner/BUILD
+++ b/src/java_tools/junitrunner/BUILD
@@ -12,7 +12,7 @@
         "//src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner:srcs",
         "//src/java_tools/junitrunner/javatests/com/google/testing/junit/runner:srcs",
     ],
-    visibility = ["//:__subpackages__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 package_group(
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/BUILD
index 8326443..a38586c 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/BUILD
@@ -26,4 +26,5 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/BUILD
index f16132b..d80039b 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/BUILD
@@ -69,4 +69,5 @@
         "//src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding:srcs",
         "//src/java_tools/junitrunner/java/com/google/testing/junit/runner/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/BUILD
index c77b989..7ee2b39 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/BUILD
@@ -35,4 +35,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/BUILD
index e500bbd..3c97d04 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/BUILD
@@ -25,4 +25,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/model/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/model/BUILD
index 22463d5..b9b468e 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/model/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/model/BUILD
@@ -20,4 +20,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/BUILD
index b589746..b6e9e7c 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/BUILD
@@ -24,4 +24,5 @@
         "//src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/api:srcs",
         "//src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/testing:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/api/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/api/BUILD
index 8d4e2c1..84c268f 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/api/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/api/BUILD
@@ -16,4 +16,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/testing/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/testing/BUILD
index 2ddfd0f..0c5f59d 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/testing/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/sharding/testing/BUILD
@@ -22,4 +22,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/util/BUILD b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/util/BUILD
index 2f3aa16..298b31e 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/util/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/util/BUILD
@@ -17,4 +17,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/BUILD b/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/BUILD
index daf4e0e..480d5f7 100644
--- a/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/BUILD
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
index 41cf6a8..e091a86 100644
--- a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
@@ -60,6 +60,7 @@
     srcs = glob(["**"]) + [
         "//src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/testbed:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 # BazelTestRunner integration tests
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/testbed/BUILD b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/testbed/BUILD
index 8cf96da..aee3e37 100644
--- a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/testbed/BUILD
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/testbed/BUILD
@@ -25,4 +25,5 @@
         "BUILD",
         "XmlOutputExercises.ant.xml",
     ],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/singlejar/BUILD b/src/java_tools/singlejar/BUILD
index 332bb57..2de4688 100644
--- a/src/java_tools/singlejar/BUILD
+++ b/src/java_tools/singlejar/BUILD
@@ -11,7 +11,7 @@
         "//src/java_tools/singlejar/javatests/com/google/devtools/build/singlejar:srcs",
         "//src/java_tools/singlejar/javatests/com/google/devtools/build/zip:srcs",
     ],
-    visibility = ["//:__subpackages__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 package_group(
diff --git a/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/BUILD b/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/BUILD
index cb2fa75..402c4fb 100644
--- a/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/BUILD
+++ b/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/BUILD
@@ -9,6 +9,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # This is used as a library outside of Bazel.
diff --git a/src/java_tools/singlejar/java/com/google/devtools/build/zip/BUILD b/src/java_tools/singlejar/java/com/google/devtools/build/zip/BUILD
index 8c393ee..e876551 100644
--- a/src/java_tools/singlejar/java/com/google/devtools/build/zip/BUILD
+++ b/src/java_tools/singlejar/java/com/google/devtools/build/zip/BUILD
@@ -9,6 +9,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
 
 # Necessary for the bootstrap compilation.
diff --git a/src/java_tools/singlejar/javatests/com/google/devtools/build/singlejar/BUILD b/src/java_tools/singlejar/javatests/com/google/devtools/build/singlejar/BUILD
index 0e65c12..43b0de9 100644
--- a/src/java_tools/singlejar/javatests/com/google/devtools/build/singlejar/BUILD
+++ b/src/java_tools/singlejar/javatests/com/google/devtools/build/singlejar/BUILD
@@ -31,4 +31,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/java_tools/singlejar/javatests/com/google/devtools/build/zip/BUILD b/src/java_tools/singlejar/javatests/com/google/devtools/build/zip/BUILD
index 88c8c7f..ba1bcd4 100644
--- a/src/java_tools/singlejar/javatests/com/google/devtools/build/zip/BUILD
+++ b/src/java_tools/singlejar/javatests/com/google/devtools/build/zip/BUILD
@@ -29,4 +29,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*.java"]) + ["BUILD"],
+    visibility = ["//src:__subpackages__"],
 )
diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD
index fd9cc03..7d718b9 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 LOCALHOST_CAPACITY_SRCS = [
diff --git a/src/main/java/com/google/devtools/build/lib/actionsketch/BUILD b/src/main/java/com/google/devtools/build/lib/actionsketch/BUILD
index a67db94..b01f62f 100644
--- a/src/main/java/com/google/devtools/build/lib/actionsketch/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actionsketch/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
index 4d702ce..5091219 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 UTIL_SRCS = ["PlatformProviderUtils.java"]
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/BUILD
index 1c6f568..c3a59b7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
index 93a7780..8b93354 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_plugin(
diff --git a/src/main/java/com/google/devtools/build/lib/authandtls/BUILD b/src/main/java/com/google/devtools/build/lib/authandtls/BUILD
index c422c55..23b7178 100644
--- a/src/main/java/com/google/devtools/build/lib/authandtls/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/authandtls/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/execlog/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/execlog/BUILD
index 3b2bb45..350bde3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/execlog/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/execlog/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/cache/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/repository/cache/BUILD
index 599a0ba..6e15092 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/cache/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/cache/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/BUILD
index 73aeac6..8a0488c 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
index 31fbf10..9596071 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
index b25ff54..3033c61 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
index 32074ef..e7a72f9 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # External build-event reporting infrastructure
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
index 244db0b..a236cb3 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/causes/BUILD b/src/main/java/com/google/devtools/build/lib/causes/BUILD
index d48f80b..07d4d8b 100644
--- a/src/main/java/com/google/devtools/build/lib/causes/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/causes/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/clock/BUILD b/src/main/java/com/google/devtools/build/lib/clock/BUILD
index 563c6cc..171bbe1 100644
--- a/src/main/java/com/google/devtools/build/lib/clock/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/clock/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Clock classes.
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
index b676f2c..aacc7fa 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # cmdline provides Label and target pattern parsing.
diff --git a/src/main/java/com/google/devtools/build/lib/collect/BUILD b/src/main/java/com/google/devtools/build/lib/collect/BUILD
index b7e87ca..ab7f822 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Library of collection utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/collect/compacthashmap/BUILD b/src/main/java/com/google/devtools/build/lib/collect/compacthashmap/BUILD
index a14c0f8..596a508 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/compacthashmap/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/compacthashmap/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Library of collection utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/collect/compacthashset/BUILD b/src/main/java/com/google/devtools/build/lib/collect/compacthashset/BUILD
index c0eb571..5e573b9 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/compacthashset/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/compacthashset/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Library of collection utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
index 3405728..012e7f6 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Library of collection utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/concurrent/BUILD b/src/main/java/com/google/devtools/build/lib/concurrent/BUILD
index 08547c37..21a940a 100644
--- a/src/main/java/com/google/devtools/build/lib/concurrent/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/concurrent/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Library of concurrency utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/dynamic/BUILD b/src/main/java/com/google/devtools/build/lib/dynamic/BUILD
index 5396446..96c34db 100644
--- a/src/main/java/com/google/devtools/build/lib/dynamic/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/dynamic/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/BUILD b/src/main/java/com/google/devtools/build/lib/exec/local/BUILD
index 8e44188..ba1d334 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/local/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/graph/BUILD b/src/main/java/com/google/devtools/build/lib/graph/BUILD
index de55ad6..a055867 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/graph/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # This package provides a general-purpose directed graph utility class with
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/BUILD b/src/main/java/com/google/devtools/build/lib/includescanning/BUILD
index 4f0067a..4778673 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/metrics/BUILD b/src/main/java/com/google/devtools/build/lib/metrics/BUILD
index df69d4c..83352a0 100644
--- a/src/main/java/com/google/devtools/build/lib/metrics/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/metrics/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 EVENT_SRCS = ["BuildMetricsEvent.java"]
diff --git a/src/main/java/com/google/devtools/build/lib/network/BUILD b/src/main/java/com/google/devtools/build/lib/network/BUILD
index 7bc4f67..b0a873d 100644
--- a/src/main/java/com/google/devtools/build/lib/network/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/network/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/outputfilter/BUILD b/src/main/java/com/google/devtools/build/lib/outputfilter/BUILD
index dddaff0..4fc9e06 100644
--- a/src/main/java/com/google/devtools/build/lib/outputfilter/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/outputfilter/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BUILD b/src/main/java/com/google/devtools/build/lib/packages/BUILD
index 19f5c69..b2a68b8 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/packages/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD b/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
index 7a57f1c..19e1905 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
@@ -9,6 +9,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/platform/BUILD b/src/main/java/com/google/devtools/build/lib/platform/BUILD
index f4692ac..6a2afca 100644
--- a/src/main/java/com/google/devtools/build/lib/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/platform/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/BUILD b/src/main/java/com/google/devtools/build/lib/profiler/BUILD
index 86bcf7d..9e06c5c 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/profiler/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/callcounts/BUILD b/src/main/java/com/google/devtools/build/lib/profiler/callcounts/BUILD
index 8f11752..c77bd99 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/callcounts/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/profiler/callcounts/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/memory/BUILD b/src/main/java/com/google/devtools/build/lib/profiler/memory/BUILD
index 82c54c4..13be78d 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/memory/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/profiler/memory/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/BUILD b/src/main/java/com/google/devtools/build/lib/query2/BUILD
index 26b7b70f..ea6b68d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/common/BUILD b/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
index 41553f0..2d3dbaf 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/compat/BUILD b/src/main/java/com/google/devtools/build/lib/query2/compat/BUILD
index 283760d..1b8585e 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/compat/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/compat/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/BUILD b/src/main/java/com/google/devtools/build/lib/query2/engine/BUILD
index 7c1c0c8..6c2474ef 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers/BUILD b/src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers/BUILD
index dade14e..d1cc346 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/query2/query/output/BUILD b/src/main/java/com/google/devtools/build/lib/query2/query/output/BUILD
index bab3465..40a1f50 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/query/output/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/query/output/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/BUILD b/src/main/java/com/google/devtools/build/lib/remote/BUILD
index 32560b6..eed3e55 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/BUILD
@@ -16,6 +16,7 @@
         "//src/main/java/com/google/devtools/build/lib/remote/options:srcs",
         "//src/main/java/com/google/devtools/build/lib/remote/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/common/BUILD b/src/main/java/com/google/devtools/build/lib/remote/common/BUILD
index 3f1edf9..51a29ee 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/common/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/common/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/disk/BUILD b/src/main/java/com/google/devtools/build/lib/remote/disk/BUILD
index b021c59..42872e7 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/disk/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/disk/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/downloader/BUILD b/src/main/java/com/google/devtools/build/lib/remote/downloader/BUILD
index 862215f..0342f5c 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/downloader/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/downloader/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/http/BUILD b/src/main/java/com/google/devtools/build/lib/remote/http/BUILD
index b1ae8aa..318c501 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/http/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/http/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/logging/BUILD b/src/main/java/com/google/devtools/build/lib/remote/logging/BUILD
index 4e7930b..8cb4b04 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/logging/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/logging/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/merkletree/BUILD b/src/main/java/com/google/devtools/build/lib/remote/merkletree/BUILD
index 3d259d4..5dec62a 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/merkletree/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/merkletree/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/options/BUILD b/src/main/java/com/google/devtools/build/lib/remote/options/BUILD
index 44112b6..3901eb3 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/options/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/options/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/util/BUILD b/src/main/java/com/google/devtools/build/lib/remote/util/BUILD
index 08a5c87..ceb78d0 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/util/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/util/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
index 1e6de82..f80a792 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/BUILD
index 1e6e8ea..d0499e6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD
index e70c74d..7e8a5be 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
index 7ff9498..2494d75 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
index 71a5e8e..75be3d2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 INTERFACE_SOURCES = [
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
index 54b09bc..7b042a5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
index 2ed42e3..763a3cb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/BUILD b/src/main/java/com/google/devtools/build/lib/rules/genrule/BUILD
index 1601f3c..a8d9954 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
index 0096568..3a22c66 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
index b9948b4..dcddb8d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD b/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
index f874b82..f8984b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/BUILD b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
index 0d462f3..2c1d983 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
index 25c12aa..046d469 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index 2788b2d..4f4187c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -8,6 +8,7 @@
         "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:srcs",
         "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/BUILD
index 57e5250..32d8eb9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/BUILD
@@ -7,6 +7,7 @@
     srcs = glob(
         ["**"],
     ),
+    visibility = ["//src:__subpackages__"],
 )
 
 # @AutoCodec annotation and plugin. Used by clients.
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils/BUILD
index fd2d151..e049c69 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/trimming/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/trimming/BUILD
index 818b2c0..fb13104 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/trimming/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/trimming/BUILD
@@ -9,6 +9,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/BUILD
index 1805f61..4eba0d8 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/BUILD
@@ -32,6 +32,7 @@
         "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test:srcs",
         "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/BUILD
index d1e59ca..e209893 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/BUILD
index ef431b6..adf49a0 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/config/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/config/BUILD
index 63aa9ff..f2c1a59 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/config/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/config/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core/BUILD
index 527b53f..151e3f3 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core/BUILD
@@ -17,6 +17,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BUILD
index 4c3fcb6..d3e1a8f 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/go/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/go/BUILD
index f88561b..1866376 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/go/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/go/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/BUILD
index d85f92c..51a19bb 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/javascript/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/javascript/BUILD
index d3715a8..ffbb463 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/javascript/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/javascript/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/BUILD
index b8830f2..b8646d5 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/BUILD
index eb9c9c0..845e718 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/python/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/python/BUILD
index 2ed0f5c..a611d41 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/python/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/python/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/repository/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/repository/BUILD
index 483949b..709522d 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/repository/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/repository/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/stubs/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/stubs/BUILD
index dc33a17..47de357 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/stubs/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/stubs/BUILD
@@ -12,6 +12,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD
index 821b0c0..1921810 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD
@@ -13,6 +13,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/BUILD
index 0dec6e0..0b8f477 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
index 7d0af75..2e59b96 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkinterface/BUILD
index 7c75c77..aa12e23 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Annotations to make Java classes and methods accessible from Starlark.
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/BUILD
index c32e9c3..600f5f5 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # A processor for Starlark annotations.
diff --git a/src/main/java/com/google/devtools/build/lib/ssd/BUILD b/src/main/java/com/google/devtools/build/lib/ssd/BUILD
index 0444b16..09d42ca 100644
--- a/src/main/java/com/google/devtools/build/lib/ssd/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/ssd/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/BUILD b/src/main/java/com/google/devtools/build/lib/standalone/BUILD
index f2e6045..a227111 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/standalone/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/supplier/BUILD b/src/main/java/com/google/devtools/build/lib/supplier/BUILD
index 8553cbf..0604e10 100644
--- a/src/main/java/com/google/devtools/build/lib/supplier/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/supplier/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/unix/BUILD b/src/main/java/com/google/devtools/build/lib/unix/BUILD
index 6c9019f..93df77a 100644
--- a/src/main/java/com/google/devtools/build/lib/unix/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/unix/BUILD
@@ -9,6 +9,7 @@
     srcs = glob(["*"]) + [
         "//src/main/java/com/google/devtools/build/lib/unix/jni:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/unsafe/BUILD b/src/main/java/com/google/devtools/build/lib/unsafe/BUILD
index 5802d07..d242eba 100644
--- a/src/main/java/com/google/devtools/build/lib/unsafe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/unsafe/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/util/io/BUILD b/src/main/java/com/google/devtools/build/lib/util/io/BUILD
index c9a7091..50aa114 100644
--- a/src/main/java/com/google/devtools/build/lib/util/io/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/util/io/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # I/O utilities.
diff --git a/src/main/java/com/google/devtools/build/lib/versioning/BUILD b/src/main/java/com/google/devtools/build/lib/versioning/BUILD
index 0ddfa1b..ea6a21e 100644
--- a/src/main/java/com/google/devtools/build/lib/versioning/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/versioning/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/BUILD b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
index a241c3a..594a997 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 PATH_FRAGMENT_SOURCES = [
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs/BUILD b/src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs/BUILD
index 29be6b1..fed66c0 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # In-memory virtual file system.
diff --git a/src/main/java/com/google/devtools/build/lib/windows/BUILD b/src/main/java/com/google/devtools/build/lib/windows/BUILD
index b3d8fd6..9f8c3e1 100644
--- a/src/main/java/com/google/devtools/build/lib/windows/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/windows/BUILD
@@ -4,18 +4,15 @@
 
 filegroup(
     name = "srcs",
+    testonly = 0,
     srcs = glob(["**"]),
-    visibility = ["//src/main/java/com/google/devtools/build/lib:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
     name = "windows_short_path",
     srcs = ["WindowsShortPath.java"],
-    visibility = [
-        "//src/main/java/com/google/devtools/build/lib/vfs:__pkg__",
-        "//src/test/java/com/google/devtools/build/lib:__pkg__",
-    ],
-    deps = ["//src/main/java/com/google/devtools/build/lib/windows/jni"],
+    deps = ["//src/main/java/com/google/devtools/build/lib/windows/jni"],  
 )
 
 java_library(
@@ -25,7 +22,6 @@
         "WindowsSubprocess.java",
         "WindowsSubprocessFactory.java",
     ],
-    visibility = ["//visibility:public"],
     deps = [
         "//src/main/java/com/google/devtools/build/lib/concurrent",
         "//src/main/java/com/google/devtools/build/lib/profiler",
@@ -33,7 +29,6 @@
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
         "//src/main/java/com/google/devtools/build/lib/windows/jni",
-        "//src/main/java/com/google/devtools/common/options",
         "//third_party:guava",
     ],
 )
diff --git a/src/main/java/com/google/devtools/build/lib/worker/BUILD b/src/main/java/com/google/devtools/build/lib/worker/BUILD
index e9d156c..23a3b7c 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/worker/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/docgen/BUILD b/src/test/java/com/google/devtools/build/docgen/BUILD
index 055d79b..eb696e5 100644
--- a/src/test/java/com/google/devtools/build/docgen/BUILD
+++ b/src/test/java/com/google/devtools/build/docgen/BUILD
@@ -52,7 +52,7 @@
         "//src/main/java/com/google/devtools/build/lib:build-base",
         "//src/main/java/com/google/devtools/build/lib:syntax",
         "//src/main/java/com/google/devtools/build/lib/skylarkinterface",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/syntax/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
@@ -81,7 +81,7 @@
         "//src/main/java/com/google/devtools/build/lib/packages",
         "//src/main/java/com/google/devtools/build/lib/rules/cpp",
         "//src/main/java/com/google/devtools/build/lib/skylarkinterface",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/syntax/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//third_party:guava",
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 36d9891..6796acd 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -1,5 +1,4 @@
 load("@rules_java//java:defs.bzl", "java_binary", "java_library", "java_test")
-load("@rules_cc//cc:defs.bzl", "cc_binary")
 
 package(
     default_visibility = [
@@ -8,23 +7,6 @@
     ],
 )
 
-# Tests for Windows-specific functionality that can run cross-platform.
-# These don't need to run on Windows, they merely use Windows- and case-insensitive path semantics.
-CROSS_PLATFORM_WINDOWS_TESTS = [
-    "util/DependencySetWindowsTest.java",
-]
-
-# Tests for Windows-specific functionality that run on Windows.
-WINDOWS_ON_WINDOWS_TESTS = glob(
-    ["windows/*.java"],
-    exclude = [
-        "windows/MockSubprocess.java",
-    ],
-)
-
-# All Windows-specific tests. Use this to exclude Windows tests from globs.
-ALL_WINDOWS_TESTS = CROSS_PLATFORM_WINDOWS_TESTS + WINDOWS_ON_WINDOWS_TESTS
-
 # Generate list of all srcs via:
 # bazel query 'filter("srcs", kind("filegroup rule", //src/test/java/com/google/devtools/build/lib/...))' | sort | sed -e "s/^/\"/" | sed -e "s/$/\",/" | fgrep -v "build/lib:srcs"
 filegroup(
@@ -36,8 +18,8 @@
         "//src/test/java/com/google/devtools/build/lib/blackbox:srcs",
         "//src/test/java/com/google/devtools/build/lib/buildeventservice:srcs",
         "//src/test/java/com/google/devtools/build/lib/buildeventstream:srcs",
-        "//src/test/java/com/google/devtools/build/lib/buildeventstream/transports:srcs",
         "//src/test/java/com/google/devtools/build/lib/buildtool:srcs",
+        "//src/test/java/com/google/devtools/build/lib/dynamic:srcs",
         "//src/test/java/com/google/devtools/build/lib/events:srcs",
         "//src/test/java/com/google/devtools/build/lib/exec:srcs",
         "//src/test/java/com/google/devtools/build/lib/integration/util:srcs",
@@ -62,7 +44,9 @@
         "//src/test/java/com/google/devtools/build/lib/versioning:srcs",
         "//src/test/java/com/google/devtools/build/lib/vfs:srcs",
         "//src/test/java/com/google/devtools/build/lib/unsafe:srcs",
+        "//src/test/java/com/google/devtools/build/lib/util:srcs",
         "//src/test/java/com/google/devtools/build/lib/testutil:srcs",
+        "//src/test/java/com/google/devtools/build/lib/windows:srcs",
     ],
     visibility = ["//src:__pkg__"],
 )
@@ -196,40 +180,6 @@
 )
 
 java_test(
-    name = "dynamic_test",
-    size = "small",
-    srcs = glob(["dynamic/*.java"]),
-    tags = [
-        "no_windows",
-    ],
-    test_class = "com.google.devtools.build.lib.AllTests",
-    deps = [
-        ":AllTests",
-        "//src/main/java/com/google/devtools/build/lib:build-base",
-        "//src/main/java/com/google/devtools/build/lib/actions",
-        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
-        "//src/main/java/com/google/devtools/build/lib/dynamic",
-        "//src/main/java/com/google/devtools/build/lib/util/io",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/common/options:options_internal",
-        "//src/main/protobuf:test_status_java_proto",
-        "//src/test/java/com/google/devtools/build/lib/actions/util",
-        "//src/test/java/com/google/devtools/build/lib/events:testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
-        "//src/test/java/com/google/devtools/build/lib/testutil:TestThread",
-        "//src/test/java/com/google/devtools/build/lib/testutil:TestUtils",
-        "//src/test/java/com/google/devtools/build/lib/vfs/util",
-        "//third_party:auto_value",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:junit4",
-        "//third_party:truth",
-    ],
-)
-
-java_test(
     name = "unix_test",
     size = "large",
     srcs = glob(["unix/*.java"]),
@@ -261,140 +211,6 @@
 )
 
 java_test(
-    name = "util_test",
-    size = "large",
-    srcs = glob(
-        [
-            "util/*.java",
-        ],
-        exclude = [
-            # java_rules_skylark doesn't support resource loading with
-            # qualified paths.
-            "util/ResourceFileLoaderTest.java",
-        ] + ALL_WINDOWS_TESTS,
-    ),
-    tags = [
-        "foundations",
-        "no_windows",
-    ],
-    test_class = "com.google.devtools.build.lib.AllTests",
-    deps = [
-        ":AllTests",
-        "//src/main/java/com/google/devtools/build/lib:command-utils",
-        "//src/main/java/com/google/devtools/build/lib:exitcode-external",
-        "//src/main/java/com/google/devtools/build/lib:failure_detail_util",
-        "//src/main/java/com/google/devtools/build/lib:resource-converter",
-        "//src/main/java/com/google/devtools/build/lib:shell_escaper",
-        "//src/main/java/com/google/devtools/build/lib:simple-log-handler",
-        "//src/main/java/com/google/devtools/build/lib:single-line-formatter",
-        "//src/main/java/com/google/devtools/build/lib:util",
-        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
-        "//src/main/java/com/google/devtools/build/lib/analysis/platform",
-        "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/shell",
-        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
-        "//src/main/java/com/google/devtools/common/options",
-        "//src/main/protobuf:failure_details_java_proto",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:junit4",
-        "//third_party:mockito",
-        "//third_party:truth",
-        "//third_party/protobuf:protobuf_java",
-    ],
-)
-
-java_test(
-    name = "util_io_test",
-    size = "large",
-    srcs = glob(["util/io/*.java"]),
-    tags = [
-        "foundations",
-        "no_windows",
-    ],
-    test_class = "com.google.devtools.build.lib.AllTests",
-    deps = [
-        ":AllTests",
-        "//src/main/java/com/google/devtools/build/lib:util",
-        "//src/main/java/com/google/devtools/build/lib/util/io",
-        "//src/main/java/com/google/devtools/build/lib/util/io:out-err",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
-        "//src/main/protobuf:bazel_flags_java_proto",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:junit4",
-        "//third_party:mockito",
-        "//third_party:truth",
-    ],
-)
-
-java_library(
-    name = "windows_testutil",
-    testonly = 1,
-    srcs = [
-        "windows/util/WindowsTestUtil.java",
-    ],
-    deps = [
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/build/lib/windows",
-        "//src/main/java/com/google/devtools/build/lib/windows/jni",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:junit4",
-        "//third_party:truth",
-    ],
-)
-
-# Tests that need to run on Windows
-java_test(
-    name = "windows-tests",
-    srcs = WINDOWS_ON_WINDOWS_TESTS,
-    data = [
-        ":MockSubprocess_deploy.jar",
-        ":printarg",
-    ],
-    jvm_flags = [
-        "-Dbazel.windows_unix_root=C:/fake/msys",
-    ],
-    test_class = "com.google.devtools.build.lib.AllTests",
-    deps = [
-        ":AllTests",
-        ":windows_testutil",
-        "//src/main/java/com/google/devtools/build/lib:os_util",
-        "//src/main/java/com/google/devtools/build/lib/clock",
-        "//src/main/java/com/google/devtools/build/lib/shell",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
-        "//src/main/java/com/google/devtools/build/lib/windows",
-        "//src/main/java/com/google/devtools/build/lib/windows:windows_short_path",
-        "//src/main/java/com/google/devtools/build/lib/windows/jni",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:junit4",
-        "//third_party:truth",
-        "@bazel_tools//tools/java/runfiles",
-    ],
-)
-
-cc_binary(
-    name = "printarg",
-    testonly = 1,
-    srcs = ["windows/printarg.cc"],
-)
-
-java_test(
     name = "graph_test",
     srcs = glob([
         "graph/*.java",
@@ -557,7 +373,7 @@
         "//src/main/protobuf:test_status_java_proto",
         "//src/test/java/com/google/devtools/build/lib/actions/util",
         "//src/test/java/com/google/devtools/build/lib/events:testutil",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
@@ -678,11 +494,6 @@
     ],
 )
 
-java_binary(
-    name = "MockSubprocess",
-    srcs = ["windows/MockSubprocess.java"],
-)
-
 java_library(
     name = "ExampleWorker-lib",
     srcs = glob(["worker/ExampleWorker*.java"]),
@@ -785,8 +596,10 @@
         "//src/test/java/com/google/devtools/build/lib/bazel:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/blackbox/tests:blackbox_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/buildeventservice:all_windows_tests",
-        "//src/test/java/com/google/devtools/build/lib/buildeventstream/transports:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/buildeventstream:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/buildtool:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/dynamic:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/metrics:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/profiler/callcounts:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/profiler/memory:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/rules:all_windows_tests",
@@ -794,6 +607,9 @@
         "//src/test/java/com/google/devtools/build/lib/skyframe:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/skylark:all_windows_tests",
         "//src/test/java/com/google/devtools/build/lib/skylarkinterface/processor:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/unsafe:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/util:all_windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/vfs:all_windows_tests",
     ],
     visibility = ["//src:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/build/lib/actions/BUILD b/src/test/java/com/google/devtools/build/lib/actions/BUILD
index a1e6f36..59e8fa3 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/actions/BUILD
@@ -14,6 +14,7 @@
     ]) + [
         "//src/test/java/com/google/devtools/build/lib/actions/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
index bad4b43..1ad28f9 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/BUILD
index d623762..995a332 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BUILD
@@ -15,6 +15,7 @@
         "//src/test/java/com/google/devtools/build/lib/analysis/util:srcs",
         "//src/test/java/com/google/devtools/build/lib/analysis/whitelisting:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
index 345cf54..d38fe6e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
index a1e890d..8637b41 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
index b0d8284..a488e93 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/skylark/annotations/processor/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
index fdceef1..f1aa3e9 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Redirection for util lib to allow exporting both ":util_internal" and the
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
index 9d8a0d9..80f5a82 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
@@ -12,6 +12,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD b/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
index c2adf42..36e475a 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
@@ -9,35 +9,25 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
-    name = "BuildEventServiceTest",
+    name = "BuildEventTransportTest",
     srcs = glob(["*.java"]),
     test_class = "com.google.devtools.build.lib.AllTests",
     runtime_deps = ["//src/test/java/com/google/devtools/build/lib:test_runner"],
     deps = [
-        "//src/main/java/com/google/devtools/build/lib:events",
-        "//src/main/java/com/google/devtools/build/lib:runtime",
-        "//src/main/java/com/google/devtools/build/lib/actions",
-        "//src/main/java/com/google/devtools/build/lib/authandtls",
         "//src/main/java/com/google/devtools/build/lib/buildeventservice",
         "//src/main/java/com/google/devtools/build/lib/buildeventservice/client",
-        "//src/main/java/com/google/devtools/build/lib/buildeventstream",
-        "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",
-        "//src/main/java/com/google/devtools/build/lib/clock",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/common/options",
-        "//src/test/java/com/google/devtools/build/lib/actions/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//third_party:guava",
         "//third_party:junit4",
         "//third_party:mockito",
         "//third_party:truth",
         "//third_party/grpc:grpc-jar",
-        "@com_google_protobuf//:protobuf_java",
-        "@com_google_protobuf//:protobuf_java_util",
+        "//third_party/protobuf:protobuf_java",
+        "//third_party/protobuf:protobuf_java_util",
         "@googleapis//:google_devtools_build_v1_build_events_java_proto",
         "@googleapis//:google_devtools_build_v1_build_status_java_proto",
         "@googleapis//:google_devtools_build_v1_publish_build_event_java_grpc",
@@ -51,7 +41,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -59,5 +48,4 @@
     tests = [
         ":windows_tests",
     ],
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventstream/BUILD b/src/test/java/com/google/devtools/build/lib/buildeventstream/BUILD
index b23f63b..29e1464 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventstream/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildeventstream/BUILD
@@ -8,15 +8,19 @@
 filegroup(
     name = "srcs",
     testonly = 0,
-    srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
+    srcs = glob(["**"]) + [
+        "//src/test/java/com/google/devtools/build/lib/buildeventstream/transports:srcs",
+    ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
     name = "BuildEventStreamTest",
     srcs = glob(["*.java"]),
     test_class = "com.google.devtools.build.lib.AllTests",
-    runtime_deps = ["//src/test/java/com/google/devtools/build/lib:test_runner"],
+    runtime_deps = [
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
     deps = [
         "//src/main/java/com/google/devtools/build/lib:runtime",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
@@ -24,10 +28,24 @@
         "//src/main/java/com/google/devtools/build/lib/unix",
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
-        "//src/main/java/com/google/devtools/common/options",
         "//third_party:guava",
         "//third_party:junit4",
-        "//third_party:mockito",
         "//third_party:truth",
     ],
 )
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/buildeventstream/transports:all_windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD b/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
index 58f5144..788e5fd 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
@@ -9,7 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
@@ -18,14 +18,11 @@
     test_class = "com.google.devtools.build.lib.AllTests",
     runtime_deps = ["//src/test/java/com/google/devtools/build/lib:test_runner"],
     deps = [
-        "//src/main/java/com/google/devtools/build/lib:runtime",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/main/java/com/google/devtools/common/options",
-        "//src/test/java/com/google/devtools/build/lib/packages:testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//third_party:guava",
         "//third_party:junit4",
@@ -42,7 +39,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -50,5 +46,4 @@
     tests = [
         ":windows_tests",
     ],
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
index 1cf6f7b..4f81e1e 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
@@ -11,6 +11,7 @@
     srcs = glob(["*"]) + [
         "//src/test/java/com/google/devtools/build/lib/buildtool/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/util/BUILD b/src/test/java/com/google/devtools/build/lib/buildtool/util/BUILD
index 4841136..49c06ce 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/util/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Redirection for util lib to allow exporting both ":util_internal" and the
diff --git a/src/test/java/com/google/devtools/build/lib/dynamic/BUILD b/src/test/java/com/google/devtools/build/lib/dynamic/BUILD
new file mode 100644
index 0000000..e8841f9
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/dynamic/BUILD
@@ -0,0 +1,53 @@
+load("@rules_java//java:defs.bzl", "java_test")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
+)
+
+java_test(
+    name = "DynamicSpawnStrategyTest",
+    size = "small",
+    srcs = ["DynamicSpawnStrategyTest.java"],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:build-base",
+        "//src/main/java/com/google/devtools/build/lib/actions",
+        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
+        "//src/main/java/com/google/devtools/build/lib/dynamic",
+        "//src/main/java/com/google/devtools/build/lib/util/io",
+        "//src/main/java/com/google/devtools/build/lib/vfs",
+        "//src/main/java/com/google/devtools/common/options",
+        "//src/test/java/com/google/devtools/build/lib/actions/util",
+        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
+        "//src/test/java/com/google/devtools/build/lib/testutil:TestThread",
+        "//src/test/java/com/google/devtools/build/lib/testutil:TestUtils",
+        "//src/test/java/com/google/devtools/build/lib/vfs/util",
+        "//third_party:auto_value",
+        "//third_party:guava",
+        "//third_party:jsr305",
+        "//third_party:junit4",
+        "//third_party:truth",
+    ],
+)
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/events/BUILD b/src/test/java/com/google/devtools/build/lib/events/BUILD
index 5e2f5e0..9cba57a 100644
--- a/src/test/java/com/google/devtools/build/lib/events/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/events/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/exec/BUILD b/src/test/java/com/google/devtools/build/lib/exec/BUILD
index 79e636a..39baac7 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/exec/BUILD
@@ -12,6 +12,7 @@
         "//src/test/java/com/google/devtools/build/lib/exec/local:srcs",
         "//src/test/java/com/google/devtools/build/lib/exec/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/exec/local/BUILD b/src/test/java/com/google/devtools/build/lib/exec/local/BUILD
index 03e218f..243d183 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/local/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/exec/local/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/BUILD b/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
index 7cb6ab7..3d4cd60 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/integration/util/BUILD b/src/test/java/com/google/devtools/build/lib/integration/util/BUILD
index f68eaba..94c78e7 100644
--- a/src/test/java/com/google/devtools/build/lib/integration/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/integration/util/BUILD
@@ -12,6 +12,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/metrics/BUILD b/src/test/java/com/google/devtools/build/lib/metrics/BUILD
index fd003c8..b88d4ce 100644
--- a/src/test/java/com/google/devtools/build/lib/metrics/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/metrics/BUILD
@@ -1,9 +1,15 @@
-licenses(["notice"])  # Apache 2.0
+load("@rules_java//java:defs.bzl", "java_test")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
 
 filegroup(
     name = "srcs",
-    srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
+    testonly = 0,
+    srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
@@ -18,3 +24,18 @@
         "//third_party:truth",
     ],
 )
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/packages/BUILD b/src/test/java/com/google/devtools/build/lib/packages/BUILD
index b1b171b..0c3c666 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/packages/BUILD
@@ -13,6 +13,7 @@
     srcs = glob(["**"]) + [
         "//src/test/java/com/google/devtools/build/lib/packages/util/mock:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/mock/BUILD b/src/test/java/com/google/devtools/build/lib/packages/util/mock/BUILD
index 3f37943..bfa20bb 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/mock/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/mock/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 exports_files([
diff --git a/src/test/java/com/google/devtools/build/lib/query2/BUILD b/src/test/java/com/google/devtools/build/lib/query2/BUILD
index 14f5b15..7549bbd 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/BUILD
@@ -11,6 +11,7 @@
         "//src/test/java/com/google/devtools/build/lib/query2/query/output:srcs",
         "//src/test/java/com/google/devtools/build/lib/query2/testutil:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 test_suite(
diff --git a/src/test/java/com/google/devtools/build/lib/query2/aquery/BUILD b/src/test/java/com/google/devtools/build/lib/query2/aquery/BUILD
index 63507e2..be5178f 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/aquery/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/aquery/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD b/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
index 381aa9c..ab91ad0 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/query2/engine/BUILD b/src/test/java/com/google/devtools/build/lib/query2/engine/BUILD
index 6b7169e..71a40bc 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/engine/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/engine/BUILD
@@ -8,6 +8,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/query2/query/output/BUILD b/src/test/java/com/google/devtools/build/lib/query2/query/output/BUILD
index 103ed6b..a5c12d3 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/query/output/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/query/output/BUILD
@@ -9,6 +9,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/BUILD b/src/test/java/com/google/devtools/build/lib/query2/testutil/BUILD
index 359a508..2add4c4 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/testutil/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/BUILD b/src/test/java/com/google/devtools/build/lib/rules/BUILD
index 1625dbf..ce0911e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/BUILD
@@ -23,6 +23,7 @@
         "//src/test/java/com/google/devtools/build/lib/rules/repository:srcs",
         "//src/test/java/com/google/devtools/build/lib/rules/test:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/BUILD b/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
index 8d662b8..5ab2e59 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
index c145059..17cdb8e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/BUILD b/src/test/java/com/google/devtools/build/lib/rules/config/BUILD
index 19409a1..a4a1ece 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Description:
@@ -26,7 +27,7 @@
         "//src/main/java/com/google/devtools/common/options",
         "//src/test/java/com/google/devtools/build/lib/actions/util",
         "//src/test/java/com/google/devtools/build/lib/analysis/util",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
index 17a5f0a..0e4f6f5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
@@ -11,6 +11,7 @@
     srcs = glob(["*"]) + [
         "//src/test/java/com/google/devtools/build/lib/rules/cpp/proto:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD b/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
index 6b767ee..4603115 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/filegroup/BUILD b/src/test/java/com/google/devtools/build/lib/rules/filegroup/BUILD
index 7675361..401af94 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/filegroup/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/filegroup/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/genquery/BUILD b/src/test/java/com/google/devtools/build/lib/rules/genquery/BUILD
index be0b98a..8cfd831 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/genquery/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/genquery/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/BUILD b/src/test/java/com/google/devtools/build/lib/rules/java/BUILD
index bb7a5ce..6e37cd8 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD b/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
index 4373c9f..1e6666f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BUILD
@@ -11,6 +11,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD
index 913ef5d..05e3f36 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 TESTUTIL_SRCS = ["ToolchainTestCase.java"]
@@ -44,7 +45,7 @@
         "//src/main/java/com/google/devtools/build/skyframe",
         "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
         "//src/test/java/com/google/devtools/build/lib/skyframe:testutil",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//third_party:guava",
         "//third_party:jsr305",
         "//third_party:junit4",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/proto/BUILD b/src/test/java/com/google/devtools/build/lib/rules/proto/BUILD
index adc92ae..b0078f2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/proto/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/proto/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/python/BUILD b/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
index 3c81c25..51a31e2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 test_suite(
@@ -230,7 +231,7 @@
         "//src/main/java/com/google/devtools/build/lib:python-rules",
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//third_party:junit4",
         "//third_party:truth",
     ],
@@ -245,7 +246,7 @@
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//third_party:junit4",
         "//third_party:truth",
     ],
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
index 99bfacd..6d36829 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/test/BUILD b/src/test/java/com/google/devtools/build/lib/rules/test/BUILD
index e47dc49..6a2deae 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/test/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/test/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/sandbox/BUILD b/src/test/java/com/google/devtools/build/lib/sandbox/BUILD
index 68fa5fd..24b124a 100644
--- a/src/test/java/com/google/devtools/build/lib/sandbox/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/sandbox/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/BUILD b/src/test/java/com/google/devtools/build/lib/skylark/BUILD
index 9294af6..a0f1850 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skylark/BUILD
@@ -1,4 +1,4 @@
-load("@rules_java//java:defs.bzl", "java_library", "java_test")
+load("@rules_java//java:defs.bzl", "java_test")
 
 package(
     default_testonly = 1,
@@ -8,79 +8,35 @@
 filegroup(
     name = "srcs",
     testonly = 0,
-    srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
-)
-
-java_library(
-    name = "testutil",
-    srcs = glob([
-        "util/*.java",
-    ]),
-    visibility = ["//visibility:public"],
-    deps = [
-        "//src/main/java/com/google/devtools/build/lib:bazel-main",
-        "//src/main/java/com/google/devtools/build/lib:bazel-rules",
-        "//src/main/java/com/google/devtools/build/lib:build-base",
-        "//src/main/java/com/google/devtools/build/lib:events",
-        "//src/main/java/com/google/devtools/build/lib:keep-going-option",
-        "//src/main/java/com/google/devtools/build/lib:runtime",
-        "//src/main/java/com/google/devtools/build/lib:syntax",
-        "//src/main/java/com/google/devtools/build/lib/actions",
-        "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/collect",
-        "//src/main/java/com/google/devtools/build/lib/concurrent",
-        "//src/main/java/com/google/devtools/build/lib/packages",
-        "//src/main/java/com/google/devtools/build/lib/packages:starlark_semantics_options",
-        "//src/main/java/com/google/devtools/build/lib/pkgcache",
-        "//src/main/java/com/google/devtools/build/lib/rules/platform",
-        "//src/main/java/com/google/devtools/build/lib/vfs",
-        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
-        "//src/main/java/com/google/devtools/common/options:options_internal",
-        "//src/test/java/com/google/devtools/build/lib/analysis/util",
-        "//src/test/java/com/google/devtools/build/lib/events:testutil",
-        "//src/test/java/com/google/devtools/build/lib/syntax/util",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
-        "//src/test/java/com/google/devtools/build/lib/vfs/util",
-        "//third_party:guava",
-        "//third_party:guava-testlib",
-        "//third_party:jsr305",
-        "//third_party:junit4",
-        "//third_party:truth",
+    srcs = glob(["**"]) + [
+        "//src/test/java/com/google/devtools/build/lib/skylark/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
     name = "SkylarkTests",
     timeout = "long",
-    srcs = glob([
-        "*.java",
-    ]),
-    shard_count = 5,
+    srcs = glob(["*.java"]),
+    shard_count = 25,
     test_class = "com.google.devtools.build.lib.AllTests",
+    runtime_deps = [
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
     deps = [
-        ":testutil",
-        "//src/main/java/com/google/devtools/build/lib:bazel-main",
-        "//src/main/java/com/google/devtools/build/lib:bazel-rules",
         "//src/main/java/com/google/devtools/build/lib:build-base",
         "//src/main/java/com/google/devtools/build/lib:classpath-util",
         "//src/main/java/com/google/devtools/build/lib:events",
-        "//src/main/java/com/google/devtools/build/lib:exitcode-external",
-        "//src/main/java/com/google/devtools/build/lib:keep-going-option",
+        "//src/main/java/com/google/devtools/build/lib:filetype",
         "//src/main/java/com/google/devtools/build/lib:python-rules",
-        "//src/main/java/com/google/devtools/build/lib:runtime",
         "//src/main/java/com/google/devtools/build/lib:syntax",
         "//src/main/java/com/google/devtools/build/lib:util",
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/collect",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
-        "//src/main/java/com/google/devtools/build/lib/concurrent",
         "//src/main/java/com/google/devtools/build/lib/packages",
         "//src/main/java/com/google/devtools/build/lib/rules/cpp",
         "//src/main/java/com/google/devtools/build/lib/rules/java:java-compilation",
-        "//src/main/java/com/google/devtools/build/lib/rules/java:java-rules",
         "//src/main/java/com/google/devtools/build/lib/rules/objc",
         "//src/main/java/com/google/devtools/build/lib/skylarkinterface",
         "//src/main/java/com/google/devtools/build/lib/vfs",
@@ -88,16 +44,13 @@
         "//src/main/java/com/google/devtools/build/skyframe",
         "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
         "//src/main/java/com/google/devtools/common/options",
-        "//src/test/java/com/google/devtools/build/lib:test_runner",
         "//src/test/java/com/google/devtools/build/lib/actions/util",
         "//src/test/java/com/google/devtools/build/lib/analysis/util",
-        "//src/test/java/com/google/devtools/build/lib/events:testutil",
         "//src/test/java/com/google/devtools/build/lib/packages:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
-        "//src/test/java/com/google/devtools/build/lib/vfs/util",
         "//third_party:guava",
-        "//third_party:guava-testlib",
         "//third_party:jsr305",
         "//third_party:junit4",
         "//third_party:truth",
@@ -110,7 +63,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -118,5 +70,4 @@
     tests = [
         ":windows_tests",
     ],
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/util/BUILD b/src/test/java/com/google/devtools/build/lib/skylark/util/BUILD
new file mode 100644
index 0000000..4c24c38
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/skylark/util/BUILD
@@ -0,0 +1,37 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
+)
+
+java_library(
+    name = "util",
+    srcs = glob(["*.java"]),
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:build-base",
+        "//src/main/java/com/google/devtools/build/lib:events",
+        "//src/main/java/com/google/devtools/build/lib:keep-going-option",
+        "//src/main/java/com/google/devtools/build/lib:runtime",
+        "//src/main/java/com/google/devtools/build/lib:syntax",
+        "//src/main/java/com/google/devtools/build/lib/cmdline",
+        "//src/main/java/com/google/devtools/build/lib/packages",
+        "//src/main/java/com/google/devtools/build/lib/packages:starlark_semantics_options",
+        "//src/main/java/com/google/devtools/build/lib/pkgcache",
+        "//src/main/java/com/google/devtools/build/lib/rules/platform",
+        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
+        "//src/main/java/com/google/devtools/common/options",
+        "//src/test/java/com/google/devtools/build/lib/analysis/util",
+        "//src/test/java/com/google/devtools/build/lib/syntax/util",
+        "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
+        "//third_party:guava",
+        "//third_party:junit4",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
index b8a0b3b..cd93ea4 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/BUILD
@@ -9,7 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
-    visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
@@ -30,16 +30,12 @@
         ":utils",
         "//src/main/java/com/google/devtools/build/lib:events",
         "//src/main/java/com/google/devtools/build/lib:syntax",
-        "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/skylarkdebug/proto:skylark_debugging_java_proto",
         "//src/main/java/com/google/devtools/build/lib/skylarkdebug/server",
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/test/java/com/google/devtools/build/lib/events:testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil",
-        "//src/test/java/com/google/devtools/build/lib/vfs/util",
         "//third_party:guava",
-        "//third_party:jsr305",
         "//third_party:junit4",
         "//third_party:truth",
     ],
@@ -50,14 +46,9 @@
     srcs = ["DebugServerTransportTest.java"],
     deps = [
         "//src/main/java/com/google/devtools/build/lib:events",
-        "//src/main/java/com/google/devtools/build/lib:syntax",
-        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/skylarkdebug/proto:skylark_debugging_java_proto",
         "//src/main/java/com/google/devtools/build/lib/skylarkdebug/server",
         "//src/test/java/com/google/devtools/build/lib/events:testutil",
-        "//src/test/java/com/google/devtools/build/lib/vfs/util",
-        "//third_party:guava",
-        "//third_party:jsr305",
         "//third_party:junit4",
         "//third_party:truth",
     ],
@@ -73,7 +64,6 @@
         "//src/main/java/com/google/devtools/build/lib/skylarkdebug/server",
         "//src/main/java/com/google/devtools/build/lib/skylarkinterface",
         "//third_party:guava",
-        "//third_party:jsr305",
         "//third_party:junit4",
         "//third_party:truth",
     ],
diff --git a/src/test/java/com/google/devtools/build/lib/supplier/BUILD b/src/test/java/com/google/devtools/build/lib/supplier/BUILD
index eb0d3c8..de386a9 100644
--- a/src/test/java/com/google/devtools/build/lib/supplier/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/supplier/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/util/BUILD b/src/test/java/com/google/devtools/build/lib/syntax/util/BUILD
index 8065f7d..be1daa8 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/syntax/util/BUILD
@@ -5,6 +5,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BUILD b/src/test/java/com/google/devtools/build/lib/testutil/BUILD
index 64620c3..c0c38d7 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/testutil/BUILD
@@ -15,6 +15,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
diff --git a/src/test/java/com/google/devtools/build/lib/unsafe/BUILD b/src/test/java/com/google/devtools/build/lib/unsafe/BUILD
index 62fad0a..8a2fcd3 100644
--- a/src/test/java/com/google/devtools/build/lib/unsafe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/unsafe/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
@@ -18,3 +19,18 @@
         "//third_party:truth",
     ],
 )
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/util/BUILD b/src/test/java/com/google/devtools/build/lib/util/BUILD
new file mode 100644
index 0000000..372ba7c
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/util/BUILD
@@ -0,0 +1,125 @@
+load("@rules_java//java:defs.bzl", "java_library", "java_test")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["*"]) + [
+        "//src/test/java/com/google/devtools/build/lib/util/io:srcs",
+    ],
+    visibility = ["//src:__subpackages__"],
+)
+
+java_test(
+    name = "UtilTests",
+    size = "small",
+    srcs = glob(
+        [
+            "*.java",
+        ],
+        exclude = [
+            "DependencySetWindowsTest.java",
+            "ResourceFileLoaderTest.java",
+        ],
+    ),
+    tags = [
+        "foundations",
+        "no_windows",
+    ],
+    test_class = "com.google.devtools.build.lib.AllTests",
+    runtime_deps = [
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:build",
+        "//src/main/java/com/google/devtools/build/lib:command-utils",
+        "//src/main/java/com/google/devtools/build/lib:exitcode-external",
+        "//src/main/java/com/google/devtools/build/lib:failure_detail_util",
+        "//src/main/java/com/google/devtools/build/lib:filetype",
+        "//src/main/java/com/google/devtools/build/lib:os_util",
+        "//src/main/java/com/google/devtools/build/lib:resource-converter",
+        "//src/main/java/com/google/devtools/build/lib:shell_escaper",
+        "//src/main/java/com/google/devtools/build/lib:simple-log-handler",
+        "//src/main/java/com/google/devtools/build/lib:single-line-formatter",
+        "//src/main/java/com/google/devtools/build/lib:string_util",
+        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
+        "//src/main/java/com/google/devtools/build/lib/analysis/platform",
+        "//src/main/java/com/google/devtools/build/lib/clock",
+        "//src/main/java/com/google/devtools/build/lib/cmdline",
+        "//src/main/java/com/google/devtools/build/lib/shell",
+        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
+        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
+        "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
+        "//src/main/protobuf:failure_details_java_proto",
+        "//src/test/java/com/google/devtools/build/lib/testutil",
+        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
+        "//third_party:guava",
+        "//third_party:guava-testlib",
+        "//third_party:junit4",
+        "//third_party:mockito",
+        "//third_party:truth",
+        "//third_party/protobuf:protobuf_java",
+    ],
+)
+
+java_test(
+    name = "ResourceFileLoaderTest",
+    srcs = ["ResourceFileLoaderTest.java"],
+    resources = ["ResourceFileLoaderTest.message"],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:util",
+        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
+        "//third_party:junit4",
+        "//third_party:truth",
+    ],
+)
+
+# Tests windows specific path handling on Unix.
+java_library(
+    name = "UtilWindowsTests_lib",
+    srcs = ["DependencySetWindowsTest.java"],
+    resources = ["ResourceFileLoaderTest.message"],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:util",
+        "//src/main/java/com/google/devtools/build/lib/vfs",
+        "//src/main/java/com/google/devtools/build/lib/windows",
+        "//src/test/java/com/google/devtools/build/lib/testutil",
+        "//third_party:guava",
+        "//third_party:junit4",
+        "//third_party:truth",
+    ],
+)
+
+java_test(
+    name = "UtilWindowsTests",
+    size = "small",
+    jvm_flags = [
+        "-Dblaze.os=Windows",
+        "-Dbazel.windows_unix_root=C:/fake/msys",
+    ],
+    test_class = "com.google.devtools.build.lib.AllTests",
+    runtime_deps = [
+        ":UtilWindowsTests_lib",
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
+)
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+        "//src/test/java/com/google/devtools/build/lib/util/io:all_windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/util/io/BUILD b/src/test/java/com/google/devtools/build/lib/util/io/BUILD
new file mode 100644
index 0000000..1abe432
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/util/io/BUILD
@@ -0,0 +1,55 @@
+load("@rules_java//java:defs.bzl", "java_test")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
+)
+
+java_test(
+    name = "io_tests",
+    size = "large",
+    srcs = glob(["*.java"]),
+    tags = [
+        "foundations",
+        "no_windows",
+    ],
+    test_class = "com.google.devtools.build.lib.AllTests",
+    runtime_deps = [
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:string_util",
+        "//src/main/java/com/google/devtools/build/lib/util/io",
+        "//src/main/java/com/google/devtools/build/lib/util/io:out-err",
+        "//src/main/java/com/google/devtools/build/lib/vfs",
+        "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
+        "//src/main/protobuf:bazel_flags_java_proto",
+        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
+        "//third_party:guava",
+        "//third_party:junit4",
+        "//third_party:mockito",
+        "//third_party:truth",
+    ],
+)
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/versioning/BUILD b/src/test/java/com/google/devtools/build/lib/versioning/BUILD
index 96630c8..c742367 100644
--- a/src/test/java/com/google/devtools/build/lib/versioning/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/versioning/BUILD
@@ -7,6 +7,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/BUILD b/src/test/java/com/google/devtools/build/lib/vfs/BUILD
index 608eea5..2330656 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/vfs/BUILD
@@ -11,6 +11,7 @@
     srcs = glob(["**"]) + [
         "//src/test/java/com/google/devtools/build/lib/vfs/util:srcs",
     ],
+    visibility = ["//src:__subpackages__"],
 )
 
 # Tests for Windows-specific functionality that can run cross-platform.
@@ -78,6 +79,7 @@
 java_test(
     name = "VfsTests",
     size = "medium",
+    tags = ["no_windows"],
     test_class = "com.google.devtools.build.lib.AllTests",
     runtime_deps = [
         ":VfsTests_lib",
@@ -134,3 +136,18 @@
         "//third_party:truth",
     ],
 )
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/util/BUILD b/src/test/java/com/google/devtools/build/lib/vfs/util/BUILD
index 91f13d6..4a69c19 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/vfs/util/BUILD
@@ -9,6 +9,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 # Redirection for util lib to allow exporting both ":util_internal" and the
diff --git a/src/test/java/com/google/devtools/build/lib/windows/BUILD b/src/test/java/com/google/devtools/build/lib/windows/BUILD
new file mode 100644
index 0000000..d53c2cc
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/windows/BUILD
@@ -0,0 +1,77 @@
+load("@rules_java//java:defs.bzl", "java_test")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["*"]) + [
+        "//src/test/java/com/google/devtools/build/lib/windows/util:srcs",
+    ],
+    visibility = ["//src:__subpackages__"],
+)
+
+# Tests that need to run on Windows
+java_test(
+    name = "windows-tests",
+    srcs = glob(
+        ["*.java"],
+        exclude = ["MockSubprocess.java"],
+    ),
+    data = [
+        ":MockSubprocess_deploy.jar",
+        ":printarg",
+    ],
+    jvm_flags = [
+        "-Dbazel.windows_unix_root=C:/fake/msys",
+    ],
+    test_class = "com.google.devtools.build.lib.AllTests",
+    runtime_deps = [
+        "//src/test/java/com/google/devtools/build/lib:test_runner",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:os_util",
+        "//src/main/java/com/google/devtools/build/lib/shell",
+        "//src/main/java/com/google/devtools/build/lib/vfs",
+        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
+        "//src/main/java/com/google/devtools/build/lib/windows",
+        "//src/main/java/com/google/devtools/build/lib/windows:windows_short_path",
+        "//src/main/java/com/google/devtools/build/lib/windows/jni",
+        "//src/test/java/com/google/devtools/build/lib/testutil",
+        "//src/test/java/com/google/devtools/build/lib/windows/util",
+        "//third_party:guava",
+        "//third_party:junit4",
+        "//third_party:truth",
+        "@bazel_tools//tools/java/runfiles",
+    ],
+)
+
+java_binary(
+    name = "MockSubprocess",
+    testonly = 1,
+    srcs = ["MockSubprocess.java"],
+)
+
+cc_binary(
+    name = "printarg",
+    testonly = 1,
+    srcs = ["printarg.cc"],
+)
+
+test_suite(
+    name = "windows_tests",
+    tags = [
+        "-no_windows",
+        "-slow",
+    ],
+)
+
+test_suite(
+    name = "all_windows_tests",
+    tests = [
+        ":windows_tests",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/lib/windows/util/BUILD b/src/test/java/com/google/devtools/build/lib/windows/util/BUILD
new file mode 100644
index 0000000..eb3cda1
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/windows/util/BUILD
@@ -0,0 +1,28 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
+package(
+    default_testonly = 1,
+    default_visibility = ["//src:__subpackages__"],
+)
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["*"]),
+    visibility = ["//src:__subpackages__"],
+)
+
+java_library(
+    name = "util",
+    testonly = 1,
+    srcs = [
+        "WindowsTestUtil.java",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib/vfs",
+        "//src/main/java/com/google/devtools/build/lib/windows/jni",
+        "//third_party:guava",
+        "//third_party:junit4",
+        "//third_party:truth",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/skydoc/BUILD b/src/test/java/com/google/devtools/build/skydoc/BUILD
index 10ae50a..4c82a2d 100644
--- a/src/test/java/com/google/devtools/build/skydoc/BUILD
+++ b/src/test/java/com/google/devtools/build/skydoc/BUILD
@@ -28,7 +28,7 @@
         "//src/main/java/com/google/devtools/build/skydoc/fakebuildapi",
         "//src/main/java/com/google/devtools/build/skydoc/rendering",
         "//src/main/java/com/google/devtools/build/skydoc/rendering/proto:stardoc_output_java_proto",
-        "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
+        "//src/test/java/com/google/devtools/build/lib/skylark/util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//third_party:guava",
diff --git a/src/test/java/com/google/devtools/build/skyframe/BUILD b/src/test/java/com/google/devtools/build/skyframe/BUILD
index 11412cc..19c4a44 100644
--- a/src/test/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/skyframe/BUILD
@@ -11,6 +11,7 @@
     name = "srcs",
     testonly = 0,
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 TESTUTIL_FILES = [
diff --git a/src/test/java/com/google/devtools/common/options/BUILD b/src/test/java/com/google/devtools/common/options/BUILD
index 1152fbc..9db1ae3 100644
--- a/src/test/java/com/google/devtools/common/options/BUILD
+++ b/src/test/java/com/google/devtools/common/options/BUILD
@@ -1,12 +1,16 @@
 load("@rules_java//java:defs.bzl", "java_library", "java_test")
 
+package(
+    default_visibility = ["//src:__subpackages__"],
+)
+
 filegroup(
     name = "srcs",
     srcs = glob(["**"]) + [
         "//src/test/java/com/google/devtools/common/options/testing:srcs",
         "//src/test/java/com/google/devtools/common/options/processor:srcs",
     ],
-    visibility = ["//src:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
@@ -16,9 +20,6 @@
         "InvocationPolicyEnforcerTestBase.java",
         "TestOptions.java",
     ],
-    visibility = [
-        "//src/test/java:__subpackages__",
-    ],
     deps = [
         "//src/main/java/com/google/devtools/build/lib:build-base",
         "//src/main/java/com/google/devtools/common/options",
@@ -30,7 +31,7 @@
 )
 
 java_test(
-    name = "options_test",
+    name = "AllTests",
     srcs = glob(
         ["*.java"],
         exclude = [
@@ -38,25 +39,20 @@
             "InvocationPolicyEnforcerTestBase.java",
         ],
     ),
-    test_class = "com.google.devtools.common.options.AllTests",
     deps = [
         ":testutils",
-        "//src/main/java/com/google/devtools/build/lib:build-base",
         "//src/main/java/com/google/devtools/build/lib:classpath-util",
-        "//src/main/java/com/google/devtools/build/lib:util",
         "//src/main/java/com/google/devtools/common/options",
         "//src/main/java/com/google/devtools/common/options:invocation_policy",
         "//src/main/java/com/google/devtools/common/options/testing",
         "//src/main/protobuf:invocation_policy_java_proto",
         "//src/main/protobuf:option_filters_java_proto",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//src/test/java/com/google/devtools/build/lib/testutil:TestSuite",
         "//third_party:flogger",
         "//third_party:guava",
         "//third_party:guava-testlib",
         "//third_party:jimfs",
-        "//third_party:jsr305",
         "//third_party:junit4",
         "//third_party:mockito",
         "//third_party:truth",
@@ -69,7 +65,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -79,5 +74,4 @@
         "//src/test/java/com/google/devtools/common/options/processor:all_windows_tests",
         "//src/test/java/com/google/devtools/common/options/testing:all_windows_tests",
     ],
-    visibility = ["//src:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/common/options/processor/BUILD b/src/test/java/com/google/devtools/common/options/processor/BUILD
index fd88141..5ec6846 100644
--- a/src/test/java/com/google/devtools/common/options/processor/BUILD
+++ b/src/test/java/com/google/devtools/common/options/processor/BUILD
@@ -1,11 +1,14 @@
 load("@rules_java//java:defs.bzl", "java_test")
 
+package(
+    default_visibility = ["//src:__subpackages__"],
+)
+
 filegroup(
     name = "srcs",
-    srcs = glob(
-        ["**"],
-    ),
-    visibility = ["//src/test/java/com/google/devtools/common/options:__pkg__"],
+    testonly = 0,
+    srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 java_test(
@@ -13,7 +16,7 @@
     srcs = ["OptionProcessorTest.java"],
     resources = [":OptionTestFiles"],
     deps = [
-        "//src/main/java/com/google/devtools/common/options",
+        "//src/main/java/com/google/devtools/common/options",  
         "//src/main/java/com/google/devtools/common/options/processor:options_preprocessor",
         "//third_party:compile_testing",
         "//third_party:guava",
@@ -33,7 +36,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -41,5 +43,4 @@
     tests = [
         ":windows_tests",
     ],
-    visibility = ["//src/test/java/com/google/devtools/common/options:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/common/options/testing/BUILD b/src/test/java/com/google/devtools/common/options/testing/BUILD
index 37b2946..f0608a2 100644
--- a/src/test/java/com/google/devtools/common/options/testing/BUILD
+++ b/src/test/java/com/google/devtools/common/options/testing/BUILD
@@ -4,18 +4,16 @@
 #   Tests of the testing tools for the devtools-common options parser.
 package(
     default_testonly = 1,
-    default_visibility = ["//visibility:private"],
+    default_visibility = ["//src:__subpackages__"],
 )
 
-licenses(["notice"])  # Apache 2.0
-
 filegroup(
     name = "srcs",
     testonly = 0,
     srcs = glob(
         ["**"],
     ),
-    visibility = ["//src/test/java/com/google/devtools/common/options:__pkg__"],
+    visibility = ["//src:__subpackages__"],
 )
 
 java_library(
@@ -24,11 +22,9 @@
     deps = [
         "//src/main/java/com/google/devtools/common/options",
         "//src/main/java/com/google/devtools/common/options/testing",
-        "//src/test/java/com/google/devtools/build/lib/testutil",
         "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
         "//src/test/java/com/google/devtools/build/lib/testutil:TestSuite",
         "//third_party:guava",
-        "//third_party:guava-testlib",
         "//third_party:junit4",
         "//third_party:truth",
     ],
@@ -46,7 +42,6 @@
         "-no_windows",
         "-slow",
     ],
-    visibility = ["//visibility:private"],
 )
 
 test_suite(
@@ -54,5 +49,4 @@
     tests = [
         ":windows_tests",
     ],
-    visibility = ["//src/test/java/com/google/devtools/common/options:__pkg__"],
 )
diff --git a/src/test/starlark/BUILD b/src/test/starlark/BUILD
index 63185c2..e5654a0 100644
--- a/src/test/starlark/BUILD
+++ b/src/test/starlark/BUILD
@@ -10,6 +10,7 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
+    visibility = ["//src:__subpackages__"],
 )
 
 [