use of com.google.devtools.build.lib.packages.ClassObjectConstructor.Key in project bazel by bazelbuild.
the class SkylarkAspectsTest method aspectWithDeclaredProviders.
@Test
public void aspectWithDeclaredProviders() throws Exception {
scratch.file("test/aspect.bzl", "foo = provider()", "bar = provider()", "def _impl(target, ctx):", " return [foo(), bar()]", "MyAspect = aspect(implementation=_impl)");
scratch.file("test/BUILD", "java_library(name = 'xxx',)");
AnalysisResult analysisResult = update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
assertThat(getLabelsToBuild(analysisResult)).containsExactly("//test:xxx");
assertThat(getAspectDescriptions(analysisResult)).containsExactly("//test:aspect.bzl%MyAspect(//test:xxx)");
List<Key> providers = getDeclaredProviderKeys(analysisResult);
assertThat((providers.get(0))).isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo"));
assertThat((providers.get(1))).isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar"));
}
use of com.google.devtools.build.lib.packages.ClassObjectConstructor.Key in project bazel by bazelbuild.
the class SkylarkAspectsTest method aspectWithDeclaredProvidersInAStruct.
@Test
public void aspectWithDeclaredProvidersInAStruct() throws Exception {
scratch.file("test/aspect.bzl", "foo = provider()", "bar = provider()", "def _impl(target, ctx):", " return struct(foobar='foobar', providers=[foo(), bar()])", "MyAspect = aspect(implementation=_impl)");
scratch.file("test/BUILD", "java_library(name = 'xxx',)");
AnalysisResult analysisResult = update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
assertThat(getLabelsToBuild(analysisResult)).containsExactly("//test:xxx");
assertThat(getAspectDescriptions(analysisResult)).containsExactly("//test:aspect.bzl%MyAspect(//test:xxx)");
List<Key> providers = getDeclaredProviderKeys(analysisResult);
assertThat((providers.get(0))).isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo"));
assertThat((providers.get(1))).isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar"));
}
Aggregations