From dad111c99a74a09a28f43cc1a143de615a95a311 Mon Sep 17 00:00:00 2001 From: Googler Date: Fri, 24 Nov 2023 02:54:07 -0800 Subject: [PATCH] Inline and delete `JavaSemantics.getTestSupport()` that always returns `null` PiperOrigin-RevId: 585045653 Change-Id: Ibb17fca91c00705a09e4bfef9638043cc8698e13 --- .../bazel/rules/java/BazelJavaSemantics.java | 29 ------------------ .../build/lib/rules/java/JavaSemantics.java | 30 ------------------- 2 files changed, 59 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java index 27a6e5d39cb9ee..099cb410d5e6f8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java @@ -33,13 +33,11 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; -import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.java.DeployArchiveBuilder; import com.google.devtools.build.lib.rules.java.DeployArchiveBuilder.Compression; import com.google.devtools.build.lib.rules.java.JavaCommon; -import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider.ClasspathType; import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts; import com.google.devtools.build.lib.rules.java.JavaConfiguration; @@ -205,19 +203,8 @@ public Artifact createStubAction( ? "0" : "1")); - TransitiveInfoCollection testSupport = JavaSemantics.getTestSupport(ruleContext); - NestedSet testSupportJars = - testSupport == null - ? NestedSetBuilder.emptySet(Order.STABLE_ORDER) - : getRuntimeJarsForTargets(testSupport); - NestedSetBuilder classpathBuilder = NestedSetBuilder.naiveLinkOrder(); classpathBuilder.addTransitive(javaCommon.getRuntimeClasspath()); - if (enforceExplicitJavaTestDeps(ruleContext)) { - // Currently, this is only needed when --explicit_java_test_deps=true, as otherwise the - // testSupport classpath is wrongly present in the javaCommon.getRuntimeClasspath(). - classpathBuilder.addTransitive(testSupportJars); - } NestedSet classpath = classpathBuilder.build(); arguments.add(new ComputedClasspathSubstitution(classpath, workspacePrefix, isRunfilesEnabled)); @@ -332,15 +319,6 @@ private static boolean enforceExplicitJavaTestDeps(RuleContext ruleContext) { return ruleContext.getFragment(JavaConfiguration.class).explicitJavaTestDeps(); } - private static NestedSet getRuntimeJarsForTargets(TransitiveInfoCollection... deps) - throws RuleErrorException { - // The dep may be a simple JAR and not a java rule, hence we can't simply do - // dep.getProvider(JavaCompilationArgsProvider.class).getRecursiveJavaCompilationArgs(), - // so we reuse the logic within JavaCompilationArgsProvider to handle both scenarios. - return JavaCompilationArgsProvider.legacyFromTargets(ImmutableList.copyOf(deps)) - .getRuntimeJars(); - } - @Override public void addRunfilesForLibrary(RuleContext ruleContext, Runfiles.Builder runfilesBuilder) { } @@ -358,13 +336,6 @@ public void collectTargetsTreatedAsDeps( // targets may break, we are keeping it behind this flag. return; } - // Only add the test support to the dependencies when running in regular mode. - // In persistent test runner mode don't pollute the classpath of the test with - // the test support classes. - TransitiveInfoCollection testSupport = JavaSemantics.getTestSupport(ruleContext); - if (testSupport != null) { - builder.add(testSupport); - } } @Override diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java index 9a537b370792ef..df7ef8c1231299 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java @@ -18,7 +18,6 @@ import static com.google.devtools.build.lib.packages.ImplicitOutputsFunction.fromTemplates; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.OutputGroupInfo; import com.google.devtools.build.lib.analysis.RuleContext; @@ -33,7 +32,6 @@ import com.google.devtools.build.lib.packages.Attribute.LabelListLateBoundDefault; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.java.DeployArchiveBuilder.Compression; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider.ClasspathType; import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel; @@ -220,34 +218,6 @@ Artifact createStubAction( */ boolean isJavaExecutableSubstitution(); - @Nullable - static TransitiveInfoCollection getTestSupport(RuleContext ruleContext) { - if (!isJavaBinaryOrJavaTest(ruleContext)) { - return null; - } - - if (useLegacyJavaTest(ruleContext)) { - return null; - } - - boolean createExecutable = ruleContext.attributes().get("create_executable", Type.BOOLEAN); - if (createExecutable && ruleContext.attributes().get("use_testrunner", Type.BOOLEAN)) { - return Iterables.getOnlyElement(ruleContext.getPrerequisites("$testsupport")); - } else { - return null; - } - } - - static boolean useLegacyJavaTest(RuleContext ruleContext) { - return !ruleContext.attributes().isAttributeValueExplicitlySpecified("test_class") - && ruleContext.getFragment(JavaConfiguration.class).useLegacyBazelJavaTest(); - } - - static boolean isJavaBinaryOrJavaTest(RuleContext ruleContext) { - return ruleContext.getRule().getRuleClass().equals("java_binary") - || ruleContext.getRule().getRuleClass().equals("java_test"); - } - /** Adds extra runfiles for a {@code java_library} rule. */ void addRunfilesForLibrary(RuleContext ruleContext, Runfiles.Builder runfilesBuilder);