summaryrefslogtreecommitdiff
path: root/rust/library_test.go
diff options
context:
space:
mode:
author Matthew Maurer <mmaurer@google.com> 2020-06-29 14:34:06 -0700
committer Matthew Maurer <mmaurer@google.com> 2020-07-01 11:27:12 -0700
commit0f003b18516df3df3fa631ca6d1e21322d0947cf (patch)
treee27bef149ff927ca9364aef6722263259e1e6ce3 /rust/library_test.go
parent2ae0513a8e4f226c2161fb89e85ef997b0881278 (diff)
rust: Add rustlibs auto dependency selection
Adds the rustlibs dependency type which will automatically select between rlib and dylib based on the type of the library. Bug: 143217452 Test: cd external/rust; mma Change-Id: I97faadae98bf957090a32939cfb2d3a10f74a057
Diffstat (limited to 'rust/library_test.go')
-rw-r--r--rust/library_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/rust/library_test.go b/rust/library_test.go
index bc3d870c0..8a91cf10f 100644
--- a/rust/library_test.go
+++ b/rust/library_test.go
@@ -143,3 +143,50 @@ func TestSharedLibrary(t *testing.T) {
libfoo.Module().(*Module).Properties.AndroidMkDylibs)
}
}
+
+// Test that variants pull in the right type of rustlib autodep
+func TestAutoDeps(t *testing.T) {
+
+ ctx := testRust(t, `
+ rust_library_host {
+ name: "libbar",
+ srcs: ["bar.rs"],
+ crate_name: "bar",
+ }
+ rust_library_host {
+ name: "libfoo",
+ srcs: ["foo.rs"],
+ crate_name: "foo",
+ rustlibs: ["libbar"],
+ }
+ rust_ffi_host {
+ name: "libfoo.ffi",
+ srcs: ["foo.rs"],
+ crate_name: "foo",
+ rustlibs: ["libbar"],
+ }`)
+
+ libfooRlib := ctx.ModuleForTests("libfoo", "linux_glibc_x86_64_rlib")
+ libfooDylib := ctx.ModuleForTests("libfoo", "linux_glibc_x86_64_dylib")
+ libfooStatic := ctx.ModuleForTests("libfoo.ffi", "linux_glibc_x86_64_static")
+ libfooShared := ctx.ModuleForTests("libfoo.ffi", "linux_glibc_x86_64_shared")
+
+ for _, static := range []android.TestingModule{libfooRlib, libfooStatic} {
+ if !android.InList("libbar", static.Module().(*Module).Properties.AndroidMkRlibs) {
+ t.Errorf("libbar not present as static dependency in static lib")
+ }
+ if android.InList("libbar", static.Module().(*Module).Properties.AndroidMkDylibs) {
+ t.Errorf("libbar present as dynamic dependency in static lib")
+ }
+ }
+
+ for _, dyn := range []android.TestingModule{libfooDylib, libfooShared} {
+ if !android.InList("libbar", dyn.Module().(*Module).Properties.AndroidMkDylibs) {
+ t.Errorf("libbar not present as dynamic dependency in dynamic lib")
+ }
+ if android.InList("libbar", dyn.Module().(*Module).Properties.AndroidMkRlibs) {
+ t.Errorf("libbar present as static dependency in dynamic lib")
+ }
+
+ }
+}