Loading android/override_module.go +3 −2 Original line number Diff line number Diff line Loading @@ -304,8 +304,9 @@ func performOverrideMutator(ctx BottomUpMutatorContext) { for i, o := range overrides { mods[i+1].(OverridableModule).override(ctx, o) if o.getOverriddenByPrebuilt() { // The overriding module itself, too, is overridden by a prebuilt. Skip its installation. mods[i+1].HideFromMake() // The overriding module itself, too, is overridden by a prebuilt. // Copy the flag and hide it in make mods[i+1].ReplacedByPrebuilt() } } } else if o, ok := ctx.Module().(OverrideModule); ok { Loading apex/apex_test.go +69 −1 Original line number Diff line number Diff line Loading @@ -5696,7 +5696,7 @@ func TestPrebuiltSkipsSymbols(t *testing.T) { installSymbolFiles bool }{ { name: "Source module build rule doesn't install symbol files", name: "Source module biuld rule doesn't install symbol files", usePrebuilt: true, installSymbolFiles: false, }, Loading Loading @@ -5750,6 +5750,74 @@ func TestPrebuiltSkipsSymbols(t *testing.T) { } } func TestPrebuiltSkipsSymbols_WorksWithOverrideApex(t *testing.T) { testCases := []struct { name string usePrebuilt bool installSymbolFiles bool }{ { name: "Source module build rule doesn't install symbol files", usePrebuilt: true, installSymbolFiles: false, }, { name: "Source module is installed with symbols", usePrebuilt: false, installSymbolFiles: true, }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { preferProperty := "prefer: false" if tc.usePrebuilt { preferProperty = "prefer: true" } ctx := testApex(t, ` apex { name: "myapex", binaries: ["foo"], key: "myapex.key", updatable: false, } // Source module override_apex { name: "myapex2", base: "myapex", package_name: "myapex2," } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } apex_set { name: "myapex2", apex_name: "myapex", // needed to replace override_apex set: "myapex2.apks", `+preferProperty+` } cc_binary { name: "foo", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } `) // Symbol files are installed by installing entries under ${OUT}/apex/{apex name} android.AssertStringListContainsEquals(t, "Implicits", ctx.ModuleForTests("myapex", "android_common_myapex2_myapex_image").Module().FilesToInstall().Strings(), filepath.Join(ctx.Config().SoongOutDir(), "target/product/test_device/apex/myapex2/bin/foo"), tc.installSymbolFiles) }) } } func TestApexWithTests(t *testing.T) { ctx := testApex(t, ` apex_test { Loading Loading
android/override_module.go +3 −2 Original line number Diff line number Diff line Loading @@ -304,8 +304,9 @@ func performOverrideMutator(ctx BottomUpMutatorContext) { for i, o := range overrides { mods[i+1].(OverridableModule).override(ctx, o) if o.getOverriddenByPrebuilt() { // The overriding module itself, too, is overridden by a prebuilt. Skip its installation. mods[i+1].HideFromMake() // The overriding module itself, too, is overridden by a prebuilt. // Copy the flag and hide it in make mods[i+1].ReplacedByPrebuilt() } } } else if o, ok := ctx.Module().(OverrideModule); ok { Loading
apex/apex_test.go +69 −1 Original line number Diff line number Diff line Loading @@ -5696,7 +5696,7 @@ func TestPrebuiltSkipsSymbols(t *testing.T) { installSymbolFiles bool }{ { name: "Source module build rule doesn't install symbol files", name: "Source module biuld rule doesn't install symbol files", usePrebuilt: true, installSymbolFiles: false, }, Loading Loading @@ -5750,6 +5750,74 @@ func TestPrebuiltSkipsSymbols(t *testing.T) { } } func TestPrebuiltSkipsSymbols_WorksWithOverrideApex(t *testing.T) { testCases := []struct { name string usePrebuilt bool installSymbolFiles bool }{ { name: "Source module build rule doesn't install symbol files", usePrebuilt: true, installSymbolFiles: false, }, { name: "Source module is installed with symbols", usePrebuilt: false, installSymbolFiles: true, }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { preferProperty := "prefer: false" if tc.usePrebuilt { preferProperty = "prefer: true" } ctx := testApex(t, ` apex { name: "myapex", binaries: ["foo"], key: "myapex.key", updatable: false, } // Source module override_apex { name: "myapex2", base: "myapex", package_name: "myapex2," } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } apex_set { name: "myapex2", apex_name: "myapex", // needed to replace override_apex set: "myapex2.apks", `+preferProperty+` } cc_binary { name: "foo", srcs: ["mylib.cpp"], system_shared_libs: [], stl: "none", apex_available: [ "myapex" ], } `) // Symbol files are installed by installing entries under ${OUT}/apex/{apex name} android.AssertStringListContainsEquals(t, "Implicits", ctx.ModuleForTests("myapex", "android_common_myapex2_myapex_image").Module().FilesToInstall().Strings(), filepath.Join(ctx.Config().SoongOutDir(), "target/product/test_device/apex/myapex2/bin/foo"), tc.installSymbolFiles) }) } } func TestApexWithTests(t *testing.T) { ctx := testApex(t, ` apex_test { Loading