aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/ResourceTestBase.java58
1 files changed, 48 insertions, 10 deletions
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.
*/