aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-11-30 15:31:32 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-30 15:33:47 -0800
commit944d4f754446dba33a83b003035fbae32f855bd0 (patch)
tree06faaa6a6b8092b9818f953a510b2df6a7f0db67 /src/main/java/com/google/devtools/build
parentcf0ac02ed80fc14a6e6e4032dc40f69e25396e35 (diff)
Automated rollback of commit a7a9d56539a467ef095d3003a16d33922d9505a5.
*** Reason for rollback *** Breaks lots of web_test targets (b/69963706) *** Original change description *** Implemented fix for case when 'use_testrunner' attribute works interconnected with 'main_class' in java_test rule. for manual testing I used BUILD file: java_test( name = "mytest", srcs = glob(["*.java"]), main_class = "com.test.Test", use_testrunner = 1, ) RELNOTES: java_tests no complain when use_testrunner is explicitly set to 1 and main_class is set. PiperOrigin-RevId: 177517757
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java20
3 files changed, 5 insertions, 30 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
index 179bbc12d7..e309112ca0 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
@@ -31,7 +31,6 @@ import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.TriState;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
-import com.google.devtools.build.lib.rules.java.JavaRuleClasses;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
import com.google.devtools.build.lib.rules.java.Jvm;
@@ -59,9 +58,7 @@ public final class BazelJavaTestRule implements RuleDefinition {
.add(attr(":proguard", LABEL).cfg(HOST).value(JavaSemantics.PROGUARD).exec())
.add(attr(":extra_proguard_specs", LABEL_LIST).value(JavaSemantics.EXTRA_PROGUARD_SPECS))
.override(attr("stamp", TRISTATE).value(TriState.NO))
- .override(
- attr("use_testrunner", BOOLEAN)
- .value(JavaRuleClasses.createUseTestrunnerComputedDefault()))
+ .override(attr("use_testrunner", BOOLEAN).value(true))
.override(attr(":java_launcher", LABEL).value(JavaSemantics.JAVA_LAUNCHER))
// Input files for test actions collecting code coverage
.add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index 80249e9f24..ed229fee77 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -97,8 +97,6 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
}
}
- validateTestMainClass(ruleContext);
-
semantics.checkRule(ruleContext, common);
semantics.checkForProtoLibraryAndJavaProtoLibraryOnSameProto(ruleContext, common);
String mainClass = semantics.getMainClass(ruleContext, common.getSrcsArtifacts());
@@ -456,14 +454,6 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
.build();
}
- private void validateTestMainClass(RuleContext ruleContext) {
- boolean useTestrunner = ruleContext.attributes().get("use_testrunner", Type.BOOLEAN);
- if (useTestrunner
- && ruleContext.attributes().isAttributeValueExplicitlySpecified("main_class")) {
- ruleContext.ruleError("cannot use use_testrunner with main_class specified.");
- }
- }
-
// Create the deploy jar and make it dependent on the runfiles middleman if an executable is
// created. Do not add the deploy jar to files to build, so we will only build it when it gets
// requested.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
index 780f71ec12..3afa1f5c37 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
@@ -21,18 +21,15 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
-import com.google.devtools.build.lib.packages.Attribute;
-import com.google.devtools.build.lib.packages.Attribute.ComputedDefault;
-import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier;
-/** Common rule class definitions for Java rules. */
-public final class JavaRuleClasses {
- private JavaRuleClasses() {}
-
+/**
+ * Common rule class definitions for Java rules.
+ */
+public class JavaRuleClasses {
/**
* Common attributes for rules that depend on ijar.
*/
@@ -58,15 +55,6 @@ public final class JavaRuleClasses {
}
}
- public static Attribute.ComputedDefault createUseTestrunnerComputedDefault() {
- return new ComputedDefault() {
- @Override
- public Object getDefault(AttributeMap rule) {
- return !rule.isAttributeValueExplicitlySpecified("main_class");
- }
- };
- }
-
/**
* Meant to be an element of {@code mandatoryProvidersLists} in order to accept rules providing a
* {@link JavaInfo} through an attribute. Other providers can be included in {@code