summaryrefslogtreecommitdiff
path: root/rust/binary_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'rust/binary_test.go')
-rw-r--r--rust/binary_test.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/rust/binary_test.go b/rust/binary_test.go
index 2fc38ed74..cfef57a77 100644
--- a/rust/binary_test.go
+++ b/rust/binary_test.go
@@ -96,3 +96,33 @@ func TestLinkObjects(t *testing.T) {
t.Errorf("missing shared dependency 'libfoo.so' in linkFlags: %#v", linkFlags)
}
}
+
+// Test that stripped versions are correctly generated and used.
+func TestStrippedBinary(t *testing.T) {
+ ctx := testRust(t, `
+ rust_binary {
+ name: "foo",
+ srcs: ["foo.rs"],
+ }
+ rust_binary {
+ name: "bar",
+ srcs: ["foo.rs"],
+ strip: {
+ none: true
+ }
+ }
+ `)
+
+ foo := ctx.ModuleForTests("foo", "android_arm64_armv8-a")
+ foo.Output("stripped/foo")
+ // Check that the `cp` rules is using the stripped version as input.
+ cp := foo.Rule("android.Cp")
+ if !strings.HasSuffix(cp.Input.String(), "stripped/foo") {
+ t.Errorf("installed binary not based on stripped version: %v", cp.Input)
+ }
+
+ fizzBar := ctx.ModuleForTests("bar", "android_arm64_armv8-a").MaybeOutput("stripped/bar")
+ if fizzBar.Rule != nil {
+ t.Errorf("stripped version of bar has been generated")
+ }
+}