diff options
Diffstat (limited to 'rust/test_test.go')
-rw-r--r-- | rust/test_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/rust/test_test.go b/rust/test_test.go index 2382b1848..fea2ad059 100644 --- a/rust/test_test.go +++ b/rust/test_test.go @@ -17,6 +17,8 @@ package rust import ( "strings" "testing" + + "android/soong/android" ) func TestRustTest(t *testing.T) { @@ -33,3 +35,35 @@ func TestRustTest(t *testing.T) { t.Errorf("wrong output path: %v; expected: %v", outPath, expectedOut) } } + +func TestRustTestLinkage(t *testing.T) { + ctx := testRust(t, ` + rust_test { + name: "my_test", + srcs: ["foo.rs"], + rustlibs: ["libfoo"], + rlibs: ["libbar"], + } + rust_library { + name: "libfoo", + srcs: ["foo.rs"], + crate_name: "foo", + } + rust_library { + name: "libbar", + srcs: ["foo.rs"], + crate_name: "bar", + }`) + + testingModule := ctx.ModuleForTests("my_test", "android_arm64_armv8-a").Module().(*Module) + + if !android.InList("libfoo.rlib-std", testingModule.Properties.AndroidMkRlibs) { + t.Errorf("rlib-std variant for libfoo not detected as a rustlib-defined rlib dependency for device rust_test module") + } + if !android.InList("libbar.rlib-std", testingModule.Properties.AndroidMkRlibs) { + t.Errorf("rlib-std variant for libbar not detected as an rlib dependency for device rust_test module") + } + if !android.InList("libstd", testingModule.Properties.AndroidMkRlibs) { + t.Errorf("Device rust_test module 'my_test' does not link libstd as an rlib") + } +} |