aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java13
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTest.java30
2 files changed, 39 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index f76c01b928..0ddfa733e2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -257,15 +257,20 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
javaExecutable);
Artifact oneVersionOutputArtifact = null;
- OneVersionEnforcementLevel oneVersionEnforcementLevel =
- ruleContext.getFragment(JavaConfiguration.class).oneVersionEnforcementLevel();
- if (oneVersionEnforcementLevel != OneVersionEnforcementLevel.OFF) {
+ JavaConfiguration javaConfig = ruleContext.getFragment(JavaConfiguration.class);
+ OneVersionEnforcementLevel oneVersionEnforcementLevel = javaConfig.oneVersionEnforcementLevel();
+
+ boolean doOneVersionEnforcement =
+ oneVersionEnforcementLevel != OneVersionEnforcementLevel.OFF
+ && javaConfig.enforceOneVersionOnJavaTests();
+ JavaToolchainProvider javaToolchain = JavaToolchainProvider.from(ruleContext);
+ if (doOneVersionEnforcement) {
oneVersionOutputArtifact =
OneVersionCheckActionBuilder.newBuilder()
.withEnforcementLevel(oneVersionEnforcementLevel)
.outputArtifact(
ruleContext.getImplicitOutputArtifact(JavaSemantics.JAVA_ONE_VERSION_ARTIFACT))
- .useToolchain(JavaToolchainProvider.from(ruleContext))
+ .useToolchain(javaToolchain)
.checkJars(
NestedSetBuilder.fromNestedSet(helper.getAttributes().getRuntimeClassPath())
.add(classJar)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTest.java
index 0c790c63e0..a626c2b0c0 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTest.java
@@ -96,6 +96,36 @@ public abstract class AbstractAndroidLocalTestTest extends BuildViewTestCase {
}
@Test
+ public void testOneVersionEnforcement_excludesWhenFlagIsOff() throws Exception {
+ useConfiguration(
+ "--experimental_one_version_enforcement=error",
+ "--one_version_enforcement_on_java_tests=false");
+
+ writeFile(
+ "java/test/resource/BUILD",
+ "android_local_test(name = 'dummyTest',",
+ " srcs = ['test.java'],",
+ " deps = [':dummyLibraryOne', ':dummyLibraryTwo'])",
+ "",
+ "android_library(name = 'dummyLibraryOne',",
+ " srcs = ['libraryOne.java'])",
+ "",
+ "android_library(name = 'dummyLibraryTwo',",
+ " srcs = ['libraryTwo.java'],",
+ " deps = [':dummyLibraryThree'])",
+ "",
+ "android_library(name = 'dummyLibraryThree',",
+ " srcs = ['libraryThree.java'])",
+ "");
+
+ ConfiguredTarget thingToTest = getConfiguredTarget("//java/test/resource:dummyTest");
+
+ assertThat(
+ prettyArtifactNames(getOutputGroup(thingToTest, OutputGroupProvider.HIDDEN_TOP_LEVEL)))
+ .doesNotContain("java/test/resource/dummyTest-one-version.txt");
+ }
+
+ @Test
public void testCollectCodeCoverageWorks() throws Exception {
writeFile("java/test/BUILD",
"android_local_test(name = 'dummyTest',",