aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/util
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-05-13 19:22:24 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-15 09:44:25 +0000
commit9263b46f85a63f8f9ad7d36103a306d65dfbee4f (patch)
treeee3ba0f69078077b375cf82b31efd2b861f20571 /src/test/java/com/google/devtools/build/lib/analysis/util
parentdb4d8619023693c97e5afb467737084ccd30b311 (diff)
Adds a provider that exports Java source information. Adds some testing support for Aspects.
-- MOS_MIGRATED_REVID=93547419
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/util')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index a2cfe086d9..95c4b95d92 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.BuildView;
import com.google.devtools.build.lib.analysis.BuildView.AnalysisResult;
import com.google.devtools.build.lib.analysis.CachingAnalysisEnvironment;
+import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory;
import com.google.devtools.build.lib.analysis.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -98,6 +99,7 @@ import com.google.devtools.build.lib.pkgcache.PackageManager;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader;
import com.google.devtools.build.lib.rules.test.BaselineCoverageAction;
+import com.google.devtools.build.lib.skyframe.AspectValue;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -807,6 +809,23 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
/**
* Gets a derived Artifact for testing in the subdirectory of the {@link
+ * BuildConfiguration#getBinDirectory()} corresponding to the package of {@code owner},
+ * where the given artifact belongs to the given ConfiguredTarget together with the given Aspect.
+ * So to specify a file foo/foo.o owned by target //foo:foo with an apsect from FooAspect,
+ * {@code packageRelativePath} should just be "foo.o", and aspectOfOwner should be
+ * FooAspect.class. This method is necessary when an Apsect of the target, not the target itself,
+ * is creating an Artifact.
+ */
+ protected Artifact getBinArtifact(String packageRelativePath, ConfiguredTarget owner,
+ Class<? extends ConfiguredAspectFactory> creatingAspectFactory) {
+ return getPackageRelativeDerivedArtifact(packageRelativePath,
+ owner.getConfiguration().getBinDirectory(),
+ (AspectValue.AspectKey) AspectValue.key(
+ owner.getLabel(), owner.getConfiguration(), creatingAspectFactory).argument());
+ }
+
+ /**
+ * Gets a derived Artifact for testing in the subdirectory of the {@link
* BuildConfiguration#getBinDirectory()} corresponding to the package of {@code owner}. So
* to specify a file foo/foo.o owned by target //foo:foo, {@code packageRelativePath} should just
* be "foo.o".