diff options
author | 2020-11-02 15:06:26 -0500 | |
---|---|---|
committer | 2020-11-05 08:53:52 -0500 | |
commit | 6a3d1e9831c896addeaf452e3e4dd2e599c8d80c (patch) | |
tree | 68fc748ea5b874eda4c3d97f1b06a360a0938314 /rust/protobuf_test.go | |
parent | e83dea5aac2c307441af85c2ef5bc744bc015326 (diff) |
Add rust_grpcio module type.
Adds a new SourceProvider type to generate grpcio code from protos.
Since it's so similar to protobuf, it's basically just a different type
of rust_protobuf.
Bug: 171504899
Test: Example module compiles.
Change-Id: I9882f3ac4d4aeaae0191f2b557e9612b5c7a9ac9
Diffstat (limited to 'rust/protobuf_test.go')
-rw-r--r-- | rust/protobuf_test.go | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/rust/protobuf_test.go b/rust/protobuf_test.go index bd11a5ae3..7c3907100 100644 --- a/rust/protobuf_test.go +++ b/rust/protobuf_test.go @@ -15,8 +15,10 @@ package rust import ( - "android/soong/android" + "strings" "testing" + + "android/soong/android" ) func TestRustProtobuf(t *testing.T) { @@ -28,12 +30,41 @@ func TestRustProtobuf(t *testing.T) { source_stem: "buf", } `) - // Check that there's a rule to generate the expected output - _ = ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_source").Output("buf.rs") - // Check that libprotobuf is added as a dependency. librust_proto := ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_dylib").Module().(*Module) if !android.InList("libprotobuf", librust_proto.Properties.AndroidMkDylibs) { t.Errorf("libprotobuf dependency missing for rust_protobuf (dependency missing from AndroidMkDylibs)") } + + // Make sure the correct plugin is being used. + librust_proto_out := ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_source").Output("buf.rs") + cmd := librust_proto_out.RuleParams.Command + if w := "protoc-gen-rust"; !strings.Contains(cmd, w) { + t.Errorf("expected %q in %q", w, cmd) + } + +} + +func TestRustGrpcio(t *testing.T) { + ctx := testRust(t, ` + rust_grpcio { + name: "librust_grpcio", + proto: "buf.proto", + crate_name: "rust_grpcio", + source_stem: "buf", + } + `) + + // Check that libprotobuf is added as a dependency. + librust_grpcio_module := ctx.ModuleForTests("librust_grpcio", "android_arm64_armv8-a_dylib").Module().(*Module) + if !android.InList("libprotobuf", librust_grpcio_module.Properties.AndroidMkDylibs) { + t.Errorf("libprotobuf dependency missing for rust_grpcio (dependency missing from AndroidMkDylibs)") + } + + // Make sure the correct plugin is being used. + librust_grpcio_out := ctx.ModuleForTests("librust_grpcio", "android_arm64_armv8-a_source").Output("buf.rs") + cmd := librust_grpcio_out.RuleParams.Command + if w := "protoc-gen-grpc"; !strings.Contains(cmd, w) { + t.Errorf("expected %q in %q", w, cmd) + } } |