aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-08-08 08:54:04 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-08 08:55:32 -0700
commitc476baa337e94fa8109d3e6ee280a54d5a0cb847 (patch)
treeac1af1c3bc9d68666459842c0b5fa18e25d90f83 /src/test
parentf2732ebb78b0abc54402026efddd2b3ee6d20e82 (diff)
Remove ResourceContainer
ValidatedAndroidResources is now the only implementation of ValidatedAndroidData, so we can also clean up some code. (The actual interface will be cleaned up in the next few changes.) RELNOTES: none PiperOrigin-RevId: 207891778
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java35
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java58
5 files changed, 66 insertions, 41 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
index 06e603b901..38d691b39d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -1849,8 +1849,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
* Gets the paths of matching artifacts that are used as input to resource processing
*
* @param dir the directory to look for artifacts in
- * @param resource the ResourceContainer output from the resource processing that uses these
- * artifacts as inputs
+ * @param resource the output from the resource processing that uses these artifacts as inputs
* @return the paths to all artifacts used as inputs to resource processing that are contained
* within the given directory, relative to that directory.
*/
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
index f269d3dd80..a360befaac 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
@@ -124,15 +124,15 @@ public abstract class AndroidBuildViewTestCase extends BuildViewTestCase {
return getGeneratingSpawnAction(resource.getApk());
}
- protected static ResourceContainer getResourceContainer(ConfiguredTarget target) {
- return getResourceContainer(target, /* transitive= */ false);
+ protected static ValidatedAndroidResources getValidatedResources(ConfiguredTarget target) {
+ return getValidatedResources(target, /* transitive= */ false);
}
- protected static ResourceContainer getResourceContainer(
+ protected static ValidatedAndroidResources getValidatedResources(
ConfiguredTarget target, boolean transitive) {
ValidatedAndroidData validated = getValidatedData(target, transitive);
- assertThat(validated).isInstanceOf(ResourceContainer.class);
- return (ResourceContainer) validated;
+ assertThat(validated).isInstanceOf(ValidatedAndroidResources.class);
+ return (ValidatedAndroidResources) validated;
}
protected static ValidatedAndroidData getValidatedData(ConfiguredTarget target) {
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 b04f6061cf..d7c256c228 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
@@ -141,6 +141,7 @@ java_library(
srcs = ["ResourceTestBase.java"],
deps = [
":AndroidBuildViewTestCase",
+ "//src/main/java/com/google/devtools/build/lib:android-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:packages-internal",
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 1793e42b14..5ab028a7cd 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
@@ -19,7 +19,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.truth.BooleanSubject;
import com.google.devtools.build.lib.actions.Artifact;
-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;
@@ -39,34 +38,22 @@ import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class ResourceFilterFactoryTest extends ResourceTestBase {
- private NestedSet<ValidatedAndroidData> getResourceContainers(
- ImmutableList<Artifact>... resources) throws Exception {
+ private NestedSet<ValidatedAndroidData> getResources(ImmutableList<Artifact>... resources)
+ throws Exception {
NestedSetBuilder<ValidatedAndroidData> builder = NestedSetBuilder.naiveLinkOrder();
for (ImmutableList<Artifact> resourceList : resources) {
- builder.add(getResourceContainer(resourceList));
+ builder.add(getResources(resourceList));
}
return builder.build();
}
- private ResourceContainer getResourceContainer(ImmutableList<Artifact> resources)
+ private ValidatedAndroidResources getResources(ImmutableList<Artifact> resources)
throws Exception {
- // Get dummy objects for irrelevant values required by the builder.
- Artifact manifest = getResource("manifest");
-
- // Include a hashCode of the resources in the label. A hack in ResourceContainer currently means
- // that class has a limited hashCode method that doesn't take resources into account.
- // TODO(bazel-team): Remove this hack once that one no longer exists.
- Label label =
- Label.create(
- manifest.getOwnerLabel().getPackageName(), "resourceContainer_" + resources.hashCode());
-
- return ResourceContainer.builder()
- .setAndroidResources(
- AndroidResources.forResources(errorConsumer, resources, "resource_files"))
- .setLabel(label)
- .setManifestExported(false)
- .setManifest(manifest)
- .build();
+ return makeValidatedResourcesFor(
+ resources,
+ /* includeAapt2Outs = */ true,
+ new ProcessedAndroidManifest(getOutput("manifest"), "com.some.pkg", /* exported = */ false),
+ ResourceDependencies.empty());
}
@Test
@@ -363,10 +350,10 @@ public class ResourceFilterFactoryTest extends ResourceTestBase {
ResourceDependencies resourceDependencies =
ResourceDependencies.empty()
.withResources(
- getResourceContainers(
+ getResources(
ImmutableList.of(transitiveResourceToDiscard),
ImmutableList.of(transitiveResourceToKeep)),
- getResourceContainers(
+ getResources(
ImmutableList.of(directResourceToDiscard),
ImmutableList.of(directResourceToKeep)),
new NestedSetBuilder<Artifact>(Order.NAIVE_LINK_ORDER)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java
index dad6ee04fe..073a2e4030 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.packages.AbstractRuleErrorConsumer;
+import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.packages.RuleErrorConsumer;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.vfs.FileSystem;
@@ -62,14 +63,15 @@ public abstract class ResourceTestBase extends AndroidBuildViewTestCase {
"android.jar",
"ResourceProcessorBusyBox_deploy.jar");
- private static final ArtifactOwner OWNER = () -> {
- try {
- return Label.create("java", "all");
- } catch (LabelSyntaxException e) {
- assertWithMessage(e.getMessage()).fail();
- return null;
- }
- };
+ private static final ArtifactOwner OWNER =
+ () -> {
+ try {
+ return Label.create("java", "all");
+ } catch (LabelSyntaxException e) {
+ assertWithMessage(e.getMessage()).fail();
+ return null;
+ }
+ };
/** A faked {@link RuleErrorConsumer} that validates that only expected errors were reported. */
public static final class FakeRuleErrorConsumer extends AbstractRuleErrorConsumer
@@ -202,8 +204,16 @@ public abstract class ResourceTestBase extends AndroidBuildViewTestCase {
return builder.build();
}
- public Artifact getResource(String pathString) {
- Path path = fileSystem.getPath("/" + RESOURCE_ROOT + "/" + pathString);
+ Artifact getResource(String pathString) {
+ return getArtifact(RESOURCE_ROOT, pathString);
+ }
+
+ Artifact getOutput(String pathString) {
+ return getArtifact("outputs", pathString);
+ }
+
+ private Artifact getArtifact(String subdir, String pathString) {
+ Path path = fileSystem.getPath("/" + subdir + "/" + pathString);
return new Artifact(
root, root.getExecPath().getRelative(root.getRoot().relativize(path)), OWNER);
}
@@ -236,6 +246,34 @@ public abstract class ResourceTestBase extends AndroidBuildViewTestCase {
ImmutableList.of(dummy.getConfiguration()), dummy.getHostConfiguration()));
}
+ public ValidatedAndroidResources makeValidatedResourcesFor(
+ ImmutableList<Artifact> resources,
+ boolean includeAapt2Outs,
+ ProcessedAndroidManifest manifest,
+ ResourceDependencies resourceDependencies)
+ throws RuleErrorException {
+ return ValidatedAndroidResources.of(
+ MergedAndroidResources.of(
+ ParsedAndroidResources.of(
+ AndroidResources.forResources(errorConsumer, resources, "resource_files"),
+ getOutput("symbols.bin"),
+ includeAapt2Outs ? getOutput("symbols.zip") : null,
+ manifest.getManifest().getOwnerLabel(),
+ manifest,
+ DataBinding.asDisabledDataBindingContext()),
+ getOutput("merged/resources.zip"),
+ getOutput("class.jar"),
+ /* dataBindingInfoZip = */ null,
+ resourceDependencies,
+ manifest),
+ getOutput("r.txt"),
+ getOutput("source.jar"),
+ getOutput("resources.apk"),
+ includeAapt2Outs ? getOutput("aapt2-r.txt") : null,
+ includeAapt2Outs ? getOutput("aapt2-source.jar") : null,
+ includeAapt2Outs ? getOutput("aapt2-static-lib") : null);
+ }
+
/**
* Assets that the action used to generate the given outputs has the expected inputs and outputs.
*/