package apex import ( "testing" "github.com/google/blueprint/proptools" "android/soong/android" ) func TestVndkApexUsesVendorVariant(t *testing.T) { bp := ` apex_vndk { name: "com.android.vndk.current", key: "mykey", updatable: false, } apex_key { name: "mykey", } cc_library { name: "libfoo", vendor_available: true, product_available: true, vndk: { enabled: true, }, system_shared_libs: [], stl: "none", } ` + vndkLibrariesTxtFiles("current") ensureFileSrc := func(t *testing.T, files []fileInApex, path, src string) { t.Helper() for _, f := range files { if f.path == path { ensureContains(t, f.src, src) return } } t.Errorf("expected path %q not found", path) } t.Run("VNDK lib doesn't have an apex variant", func(t *testing.T) { ctx := testApex(t, bp) // libfoo doesn't have apex variants for _, variant := range ctx.ModuleVariantsForTests("libfoo") { ensureNotContains(t, variant, "_myapex") } // VNDK APEX doesn't create apex variant files := getFiles(t, ctx, "com.android.vndk.current", "android_common") ensureFileSrc(t, files, "lib/libfoo.so", "libfoo/android_vendor.29_arm_armv7-a-neon_shared/libfoo.so") }) t.Run("VNDK APEX gathers only vendor variants even if product variants are available", func(t *testing.T) { ctx := testApex(t, bp) files := getFiles(t, ctx, "com.android.vndk.current", "android_common") ensureFileSrc(t, files, "lib/libfoo.so", "libfoo/android_vendor.29_arm_armv7-a-neon_shared/libfoo.so") }) t.Run("VNDK APEX supports coverage variants", func(t *testing.T) { ctx := testApex(t, bp, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.GcovCoverage = proptools.BoolPtr(true) variables.Native_coverage = proptools.BoolPtr(true) }), ) files := getFiles(t, ctx, "com.android.vndk.current", "android_common") ensureFileSrc(t, files, "lib/libfoo.so", "libfoo/android_vendor.29_arm_armv7-a-neon_shared/libfoo.so") files = getFiles(t, ctx, "com.android.vndk.current", "android_common_cov") ensureFileSrc(t, files, "lib/libfoo.so", "libfoo/android_vendor.29_arm_armv7-a-neon_shared_cov/libfoo.so") }) }