rust: Emit android vndk cfg flag.
Pass an "android_vndk" cfg flag that indicates this code targets the vndk. This can be useful in instances where code might need to behave differently. This also includes a fix to make sure our vendor Soong tests are correctly configured. Bug: 179907868 Test: Soong tests pass. Test: Example module emits new cfg flags. Change-Id: I01cdf91f6f9d42cd8a759266d5170479664bf4bc
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package rust
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
@@ -23,7 +24,7 @@ import (
|
||||
|
||||
// Test that cc modules can link against vendor_available rust_ffi_static libraries.
|
||||
func TestVendorLinkage(t *testing.T) {
|
||||
ctx := testRust(t, `
|
||||
ctx := testRustVndk(t, `
|
||||
cc_binary {
|
||||
name: "fizz_vendor",
|
||||
static_libs: ["libfoo_vendor"],
|
||||
@@ -37,16 +38,34 @@ func TestVendorLinkage(t *testing.T) {
|
||||
}
|
||||
`)
|
||||
|
||||
vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_arm64_armv8-a").Module().(*cc.Module)
|
||||
vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_vendor.VER_arm64_armv8-a").Module().(*cc.Module)
|
||||
|
||||
if !android.InList("libfoo_vendor", vendorBinary.Properties.AndroidMkStaticLibs) {
|
||||
t.Errorf("vendorBinary should have a dependency on libfoo_vendor")
|
||||
}
|
||||
}
|
||||
|
||||
// Test that variants which use the vndk emit the appropriate cfg flag.
|
||||
func TestImageVndkCfgFlag(t *testing.T) {
|
||||
ctx := testRustVndk(t, `
|
||||
rust_ffi_static {
|
||||
name: "libfoo",
|
||||
crate_name: "foo",
|
||||
srcs: ["foo.rs"],
|
||||
vendor_available: true,
|
||||
}
|
||||
`)
|
||||
|
||||
vendor := ctx.ModuleForTests("libfoo", "android_vendor.VER_arm64_armv8-a_static").Rule("rustc")
|
||||
|
||||
if !strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_vndk'") {
|
||||
t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"])
|
||||
}
|
||||
}
|
||||
|
||||
// Test that cc modules can link against vendor_ramdisk_available rust_ffi_static libraries.
|
||||
func TestVendorRamdiskLinkage(t *testing.T) {
|
||||
ctx := testRust(t, `
|
||||
ctx := testRustVndk(t, `
|
||||
cc_library_static {
|
||||
name: "libcc_vendor_ramdisk",
|
||||
static_libs: ["libfoo_vendor_ramdisk"],
|
||||
|
Reference in New Issue
Block a user