aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/cpp/proto
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2016-12-12 21:03:49 +0000
committerGravatar John Cater <jcater@google.com>2016-12-13 16:28:12 +0000
commit5a84ac8c643f1180d5a41118a2fa4514cc345726 (patch)
tree82ea7feddf036220d64f204029221fb8e7e51804 /src/test/java/com/google/devtools/build/lib/rules/cpp/proto
parent1ba9fe805f7934a74587425a83aca06f51726898 (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/com/google/devtools/build/lib/rules/cpp/proto')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryTest.java21
1 files changed, 18 insertions, 3 deletions
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.