Merge "Do not allow duplicate deapexer dependencies." into sc-dev
This commit is contained in:
commit
8410eb1551
|
@ -6568,6 +6568,73 @@ func testDexpreoptWithApexes(t *testing.T, bp, errmsg string, preparer android.F
|
|||
return result.TestContext
|
||||
}
|
||||
|
||||
func TestDuplicateDeapexeresFromPrebuiltApexes(t *testing.T) {
|
||||
preparers := android.GroupFixturePreparers(
|
||||
java.PrepareForTestWithJavaDefaultModules,
|
||||
PrepareForTestWithApexBuildComponents,
|
||||
).
|
||||
ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(
|
||||
`Ambiguous duplicate deapexer module dependencies "com.android.myapex.deapexer" and "com.mycompany.android.myapex.deapexer"`))
|
||||
|
||||
bpBase := `
|
||||
apex_set {
|
||||
name: "com.android.myapex",
|
||||
exported_bootclasspath_fragments: ["my-bootclasspath-fragment"],
|
||||
set: "myapex.apks",
|
||||
}
|
||||
|
||||
apex_set {
|
||||
name: "com.mycompany.android.myapex",
|
||||
apex_name: "com.android.myapex",
|
||||
exported_bootclasspath_fragments: ["my-bootclasspath-fragment"],
|
||||
set: "company-myapex.apks",
|
||||
}
|
||||
|
||||
prebuilt_bootclasspath_fragment {
|
||||
name: "my-bootclasspath-fragment",
|
||||
apex_available: ["com.android.myapex"],
|
||||
%s
|
||||
}
|
||||
`
|
||||
|
||||
t.Run("java_import", func(t *testing.T) {
|
||||
_ = preparers.RunTestWithBp(t, fmt.Sprintf(bpBase, `contents: ["libfoo"]`)+`
|
||||
java_import {
|
||||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["com.android.myapex"],
|
||||
}
|
||||
`)
|
||||
})
|
||||
|
||||
t.Run("java_sdk_library_import", func(t *testing.T) {
|
||||
_ = preparers.RunTestWithBp(t, fmt.Sprintf(bpBase, `contents: ["libfoo"]`)+`
|
||||
java_sdk_library_import {
|
||||
name: "libfoo",
|
||||
public: {
|
||||
jars: ["libbar.jar"],
|
||||
},
|
||||
apex_available: ["com.android.myapex"],
|
||||
}
|
||||
`)
|
||||
})
|
||||
|
||||
t.Run("prebuilt_bootclasspath_fragment", func(t *testing.T) {
|
||||
_ = preparers.RunTestWithBp(t, fmt.Sprintf(bpBase, `
|
||||
image_name: "art",
|
||||
contents: ["libfoo"],
|
||||
`)+`
|
||||
java_sdk_library_import {
|
||||
name: "libfoo",
|
||||
public: {
|
||||
jars: ["libbar.jar"],
|
||||
},
|
||||
apex_available: ["com.android.myapex"],
|
||||
}
|
||||
`)
|
||||
})
|
||||
}
|
||||
|
||||
func TestUpdatable_should_set_min_sdk_version(t *testing.T) {
|
||||
testApexError(t, `"myapex" .*: updatable: updatable APEXes should set min_sdk_version`, `
|
||||
apex {
|
||||
|
|
|
@ -907,11 +907,15 @@ func (module *prebuiltBootclasspathFragmentModule) produceBootImageFiles(ctx and
|
|||
}
|
||||
|
||||
var deapexerModule android.Module
|
||||
ctx.VisitDirectDeps(func(module android.Module) {
|
||||
tag := ctx.OtherModuleDependencyTag(module)
|
||||
ctx.VisitDirectDeps(func(to android.Module) {
|
||||
tag := ctx.OtherModuleDependencyTag(to)
|
||||
// Save away the `deapexer` module on which this depends, if any.
|
||||
if tag == android.DeapexerTag {
|
||||
deapexerModule = module
|
||||
if deapexerModule != nil {
|
||||
ctx.ModuleErrorf("Ambiguous duplicate deapexer module dependencies %q and %q",
|
||||
deapexerModule.Name(), to.Name())
|
||||
}
|
||||
deapexerModule = to
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
@ -1283,6 +1283,10 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
|
||||
// Save away the `deapexer` module on which this depends, if any.
|
||||
if tag == android.DeapexerTag {
|
||||
if deapexerModule != nil {
|
||||
ctx.ModuleErrorf("Ambiguous duplicate deapexer module dependencies %q and %q",
|
||||
deapexerModule.Name(), module.Name())
|
||||
}
|
||||
deapexerModule = module
|
||||
}
|
||||
})
|
||||
|
|
|
@ -2160,6 +2160,10 @@ func (module *SdkLibraryImport) GenerateAndroidBuildActions(ctx android.ModuleCo
|
|||
|
||||
// Save away the `deapexer` module on which this depends, if any.
|
||||
if tag == android.DeapexerTag {
|
||||
if deapexerModule != nil {
|
||||
ctx.ModuleErrorf("Ambiguous duplicate deapexer module dependencies %q and %q",
|
||||
deapexerModule.Name(), to.Name())
|
||||
}
|
||||
deapexerModule = to
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue