Make prebuilt_apex report an error if no apex file is found

Previously, if an appropriate src property was not specified it would
return "" which resolves to the top level directory. This change causes
it to report an error.

Bug: 181267622
Test: m droid
Change-Id: Ia5be324a0eff18e43b352d71c6768c8767986053
This commit is contained in:
Paul Duffin 2021-03-01 17:27:16 +00:00
parent de21202bd2
commit c0609c603c
2 changed files with 14 additions and 3 deletions

View File

@ -4316,6 +4316,14 @@ func TestPrebuilt(t *testing.T) {
} }
} }
func TestPrebuiltMissingSrc(t *testing.T) {
testApexError(t, `module "myapex" variant "android_common".*: prebuilt_apex does not support "arm64_armv8-a"`, `
prebuilt_apex {
name: "myapex",
}
`)
}
func TestPrebuiltFilenameOverride(t *testing.T) { func TestPrebuiltFilenameOverride(t *testing.T) {
ctx := testApex(t, ` ctx := testApex(t, `
prebuilt_apex { prebuilt_apex {

View File

@ -152,14 +152,17 @@ func (p *ApexFileProperties) prebuiltApexSelector(ctx android.BaseModuleContext,
src = String(p.Arch.X86.Src) src = String(p.Arch.X86.Src)
case android.X86_64: case android.X86_64:
src = String(p.Arch.X86_64.Src) src = String(p.Arch.X86_64.Src)
default:
ctx.OtherModuleErrorf(prebuilt, "prebuilt_apex does not support %q", multiTargets[0].Arch.String())
return nil
} }
if src == "" { if src == "" {
src = String(p.Src) src = String(p.Src)
} }
if src == "" {
ctx.OtherModuleErrorf(prebuilt, "prebuilt_apex does not support %q", multiTargets[0].Arch.String())
// Drop through to return an empty string as the src (instead of nil) to avoid the prebuilt
// logic from reporting a more general, less useful message.
}
return []string{src} return []string{src}
} }