aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2018-08-03 15:20:44 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-03 15:22:40 -0700
commit0cb8590de83b9250eee198a3f82078aad74f42b5 (patch)
tree33a21822d0c6017c9029d03422182b7a08098292 /src/test/java/com
parent1225e4ad5dff72b63953639b4c4c4281f8b46ea5 (diff)
Reduce and centralize databinding context instances.
Due to some of the vagaries of skylark and multiple entry points, the databinding context is currently updated by the parse action. RELNOTES: None PiperOrigin-RevId: 207333111
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java65
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java12
2 files changed, 29 insertions, 48 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
index 368303df9d..f2169b5f4d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion;
+import com.google.devtools.build.lib.rules.android.DataBinding.DataBindingContext;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.Optional;
import org.junit.Before;
@@ -145,14 +146,12 @@ public class AndroidResourcesTest extends ResourceTestBase {
throws Exception {
RuleContext ruleContext = getRuleContext();
ValidatedAndroidResources unfiltered =
- new AndroidResources(
- unfilteredResources,
- getResourceRoots(unfilteredResources),
- DataBinding.asDisabledDataBindingContext())
+ new AndroidResources(unfilteredResources, getResourceRoots(unfilteredResources))
.process(
ruleContext,
AndroidDataContext.forNative(ruleContext),
getManifest(),
+ DataBinding.contextFrom(ruleContext),
/* neverlink = */ false);
Optional<? extends AndroidResources> maybeFiltered =
assertFilter(unfiltered, filteredResources, /* isDependency = */ true);
@@ -180,10 +179,7 @@ public class AndroidResourcesTest extends ResourceTestBase {
boolean isDependency)
throws Exception {
AndroidResources unfiltered =
- new AndroidResources(
- unfilteredResources,
- getResourceRoots(unfilteredResources),
- DataBinding.asDisabledDataBindingContext());
+ new AndroidResources(unfilteredResources, getResourceRoots(unfilteredResources));
assertFilter(unfiltered, filteredResources, isDependency);
}
@@ -230,7 +226,8 @@ public class AndroidResourcesTest extends ResourceTestBase {
useConfiguration("--android_aapt=aapt");
RuleContext ruleContext = getRuleContext();
- ParsedAndroidResources parsed = assertParse(ruleContext, /* enableDataBinding = */ true);
+ ParsedAndroidResources parsed =
+ assertParse(ruleContext, DataBinding.asEnabledDataBindingContextFrom(ruleContext));
// Since we are not using aapt2, there should be no compiled symbols
assertThat(parsed.getCompiledSymbols()).isNull();
@@ -271,9 +268,9 @@ public class AndroidResourcesTest extends ResourceTestBase {
mockAndroidSdkWithAapt2();
useConfiguration("--android_sdk=//sdk:sdk", "--android_aapt=aapt2");
- RuleContext ruleContext = getRuleContext();
+ RuleContext ruleContext = getRuleContextWithDataBinding();
- ParsedAndroidResources parsed = assertParse(ruleContext, /* enableDataBinding = */ true);
+ ParsedAndroidResources parsed = assertParse(ruleContext);
// The parse action should take resources and busybox artifacts in and output symbols
assertActionArtifacts(
@@ -290,20 +287,20 @@ public class AndroidResourcesTest extends ResourceTestBase {
.add(parsed.getManifest())
.build(),
/* outputs = */ ImmutableList.of(
- parsed.getCompiledSymbols(), DataBinding.getSuffixedInfoFile(ruleContext, "_unused")));
+ parsed.getCompiledSymbols(),
+ ParsedAndroidResources.getDummyDataBindingArtifact(ruleContext)));
}
@Test
public void testMergeDataBinding() throws Exception {
useConfiguration("--android_aapt=aapt");
- RuleContext ruleContext = getRuleContext();
+ RuleContext ruleContext = getRuleContextWithDataBinding();
ParsedAndroidResources parsed = assertParse(ruleContext);
MergedAndroidResources merged =
parsed.merge(
AndroidDataContext.forNative(ruleContext),
ResourceDependencies.empty(),
- /* enableDataBinding = */ true,
AndroidAaptVersion.chooseTargetAaptVersion(ruleContext));
// Besides processed manifest, inherited values should be equal
@@ -340,7 +337,6 @@ public class AndroidResourcesTest extends ResourceTestBase {
parsed.merge(
AndroidDataContext.forNative(ruleContext),
ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false),
- DataBinding.isEnabled(ruleContext),
AndroidAaptVersion.chooseTargetAaptVersion(ruleContext));
// Besides processed manifest, inherited values should be equal
@@ -502,7 +498,8 @@ public class AndroidResourcesTest extends ResourceTestBase {
false,
false,
null,
- null)
+ null,
+ DataBinding.contextFrom(ruleContext))
.generateRClass(dataContext, AndroidAaptVersion.AUTO);
assertThat(resourceApk.getResourceProguardConfig()).isNotNull();
@@ -514,26 +511,23 @@ public class AndroidResourcesTest extends ResourceTestBase {
* for further validation.
*/
private ParsedAndroidResources assertParse(RuleContext ruleContext) throws Exception {
- return assertParse(ruleContext, /* enableDataBinding = */ false);
+ return assertParse(ruleContext, DataBinding.contextFrom(ruleContext));
}
- private ParsedAndroidResources assertParse(RuleContext ruleContext, boolean enableDataBinding)
- throws Exception {
-
+ private ParsedAndroidResources assertParse(
+ RuleContext ruleContext, DataBindingContext dataBindingContext) throws Exception {
ImmutableList<Artifact> resources = getResources("values-en/foo.xml", "drawable-hdpi/bar.png");
AndroidResources raw =
new AndroidResources(
- resources,
- AndroidResources.getResourceRoots(ruleContext, resources, "resource_files"),
- DataBinding.asDisabledDataBindingContext());
+ resources, AndroidResources.getResourceRoots(ruleContext, resources, "resource_files"));
StampedAndroidManifest manifest = getManifest();
ParsedAndroidResources parsed =
raw.parse(
AndroidDataContext.forNative(ruleContext),
manifest,
- enableDataBinding,
- AndroidAaptVersion.chooseTargetAaptVersion(ruleContext));
+ AndroidAaptVersion.chooseTargetAaptVersion(ruleContext),
+ dataBindingContext);
// Inherited values should be equal
assertThat(raw).isEqualTo(new AndroidResources(parsed));
@@ -550,30 +544,19 @@ public class AndroidResourcesTest extends ResourceTestBase {
.merge(
AndroidDataContext.forNative(ruleContext),
ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false),
- DataBinding.isEnabled(ruleContext),
AndroidAaptVersion.chooseTargetAaptVersion(ruleContext));
}
private ParsedAndroidResources makeParsedResources(RuleContext ruleContext)
throws RuleErrorException, InterruptedException {
- return makeParsedResources(ruleContext, /* enableDataBinding = */ false);
- }
-
- private ParsedAndroidResources makeParsedResources(
- RuleContext ruleContext, boolean enableDataBinding)
- throws RuleErrorException, InterruptedException {
ImmutableList<Artifact> resources = getResources("values-en/foo.xml", "drawable-hdpi/bar.png");
return new AndroidResources(
- resources,
- AndroidResources.getResourceRoots(ruleContext, resources, "resource_files"),
- enableDataBinding
- ? DataBinding.asEnabledDataBindingContextFrom(ruleContext)
- : DataBinding.asDisabledDataBindingContext())
+ resources, AndroidResources.getResourceRoots(ruleContext, resources, "resource_files"))
.parse(
AndroidDataContext.forNative(ruleContext),
getManifest(),
- enableDataBinding,
- AndroidAaptVersion.chooseTargetAaptVersion(ruleContext));
+ AndroidAaptVersion.chooseTargetAaptVersion(ruleContext),
+ DataBinding.contextFrom(ruleContext));
}
private ProcessedAndroidManifest getManifest() {
@@ -586,6 +569,10 @@ public class AndroidResourcesTest extends ResourceTestBase {
return getRuleContext("android_library");
}
+ private RuleContext getRuleContextWithDataBinding() throws Exception {
+ return getRuleContext("android_library", "enable_data_binding = 1");
+ }
+
/** Gets a dummy rule context object by creating a dummy target. */
private RuleContext getRuleContext(String kind, String... additionalLines) throws Exception {
ConfiguredTarget target =
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
index f569191128..1793e42b14 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
@@ -62,11 +62,7 @@ public class ResourceFilterFactoryTest extends ResourceTestBase {
return ResourceContainer.builder()
.setAndroidResources(
- AndroidResources.forResources(
- errorConsumer,
- resources,
- "resource_files",
- DataBinding.asDisabledDataBindingContext()))
+ AndroidResources.forResources(errorConsumer, resources, "resource_files"))
.setLabel(label)
.setManifestExported(false)
.setManifest(manifest)
@@ -362,8 +358,7 @@ public class ResourceFilterFactoryTest extends ResourceTestBase {
AndroidResources.forResources(
errorConsumer,
ImmutableList.of(localResourceToKeep, localResourceToDiscard),
- "resource_files",
- DataBinding.asDisabledDataBindingContext());
+ "resource_files");
ResourceDependencies resourceDependencies =
ResourceDependencies.empty()
@@ -501,8 +496,7 @@ public class ResourceFilterFactoryTest extends ResourceTestBase {
ResourceFilterFactory resourceFilterFactory, ImmutableList<Artifact> artifacts)
throws RuleErrorException {
AndroidResources localResources =
- AndroidResources.forResources(
- errorConsumer, artifacts, "resource_files", DataBinding.asDisabledDataBindingContext());
+ AndroidResources.forResources(errorConsumer, artifacts, "resource_files");
ResourceDependencies resourceDeps = ResourceDependencies.empty();