diff options
author | 2016-12-12 21:03:49 +0000 | |
---|---|---|
committer | 2016-12-13 16:28:12 +0000 | |
commit | 5a84ac8c643f1180d5a41118a2fa4514cc345726 (patch) | |
tree | 82ea7feddf036220d64f204029221fb8e7e51804 /src/test/java | |
parent | 1ba9fe805f7934a74587425a83aca06f51726898 (diff) |
Propagate all providers from CcLibraryHelper into cc_proto_library.
Previously, at least one critical provider was not propagated (CppCompilationContext) which resulted in cc_library's being unable to find the generated headers.
--
PiperOrigin-RevId: 141800408
MOS_MIGRATED_REVID=141800408
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/BUILD | 2 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java | 21 |
2 files changed, 20 insertions, 3 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD index 246f9d828d..60f781fa33 100644 --- a/src/test/java/com/google/devtools/build/lib/BUILD +++ b/src/test/java/com/google/devtools/build/lib/BUILD @@ -965,7 +965,9 @@ java_test( deps = [ ":actions_testutil", ":analysis_testutil", + "//src/main/java/com/google/devtools/build/lib:build-base", "//src/main/java/com/google/devtools/build/lib:vfs", + "//src/main/java/com/google/devtools/build/lib/rules/cpp", "//src/main/java/com/google/devtools/build/lib/rules/cpp/proto:ProtoCcHeaderProvider", "//third_party:guava", "//third_party:junit4", diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java index bac8dfbcf7..90a4a17578 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java @@ -20,6 +20,7 @@ import static com.google.devtools.build.lib.actions.util.ActionsTestUtil.prettyA import com.google.common.collect.ImmutableList; import com.google.common.eventbus.EventBus; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; +import com.google.devtools.build.lib.rules.cpp.CppCompilationContext; import com.google.devtools.build.lib.vfs.FileSystemUtils; import org.junit.Before; import org.junit.Test; @@ -101,9 +102,23 @@ public class CcProtoLibraryTest extends BuildViewTestCase { "proto_library(name = 'alias_proto', deps = [':foo_proto'])", "proto_library(name = 'foo_proto', srcs = ['foo.proto'])"); - ProtoCcHeaderProvider headers = - getConfiguredTarget("//x:foo_cc_proto").getProvider(ProtoCcHeaderProvider.class); - assertThat(prettyArtifactNames(headers.getHeaders())).containsExactly("x/foo.pb.h"); + CppCompilationContext context = + getConfiguredTarget("//x:foo_cc_proto").getProvider(CppCompilationContext.class); + assertThat(prettyArtifactNames(context.getDeclaredIncludeSrcs())).containsExactly("x/foo.pb.h"); + } + + @Test + public void cppCompilationContext() throws Exception { + scratch.file( + "x/BUILD", + "cc_proto_library(name = 'foo_cc_proto', deps = ['foo_proto'])", + "proto_library(name = 'foo_proto', srcs = ['foo.proto'], deps = [':bar_proto'])", + "proto_library(name = 'bar_proto', srcs = ['bar.proto'])"); + + CppCompilationContext context = + getConfiguredTarget("//x:foo_cc_proto").getProvider(CppCompilationContext.class); + assertThat(prettyArtifactNames(context.getDeclaredIncludeSrcs())) + .containsExactly("x/foo.pb.h", "x/bar.pb.h"); } // TODO(carmi): test blacklisted protos. I don't currently understand what's the wanted behavior. |