Add test to show issues with widest stub dex jars
The widest stub dex jars should include the widest stub dex jars provided by each module. So, if module A has public, system and test and module B has only public then the widest stub dex jars should include module A's test and module B's public stub dex jars. Instead, they just include module A's test. That behaviour is needed so that when the "hiddenapi list" tool is run against a module C that it is passed stub dex jars from both module A and module B so that any references to the types provided by those APIs can be resolved. A follow up change will fix this issue. Bug: 179354495 Test: m nothing Change-Id: Ibd31964e8d2a33fa92fbd0b800c9fe054ee359c7
This commit is contained in:
@@ -305,10 +305,10 @@ func buildRuleToGenerateHiddenAPIStubFlagsFile(ctx android.BuilderContext, name,
|
||||
tempPath := tempPathForRestat(ctx, outputPath)
|
||||
|
||||
// Find the widest API stubs provided by the fragments on which this depends, if any.
|
||||
dependencyStubDexJars := input.DependencyStubDexJarsByScope.stubDexJarsForWidestAPIScope()
|
||||
dependencyStubDexJars := input.DependencyStubDexJarsByScope.StubDexJarsForWidestAPIScope()
|
||||
|
||||
// Add widest API stubs from the additional dependencies of this, if any.
|
||||
dependencyStubDexJars = append(dependencyStubDexJars, input.AdditionalStubDexJarsByScope.stubDexJarsForWidestAPIScope()...)
|
||||
dependencyStubDexJars = append(dependencyStubDexJars, input.AdditionalStubDexJarsByScope.StubDexJarsForWidestAPIScope()...)
|
||||
|
||||
command := rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "hiddenapi")).
|
||||
@@ -579,9 +579,9 @@ func (s StubDexJarsByScope) dedupAndSort() {
|
||||
}
|
||||
}
|
||||
|
||||
// stubDexJarsForWidestAPIScope returns the stub dex jars for the widest API scope provided by this
|
||||
// StubDexJarsForWidestAPIScope returns the stub dex jars for the widest API scope provided by this
|
||||
// map. The relative width of APIs is determined by their order in hiddenAPIScopes.
|
||||
func (s StubDexJarsByScope) stubDexJarsForWidestAPIScope() android.Paths {
|
||||
func (s StubDexJarsByScope) StubDexJarsForWidestAPIScope() android.Paths {
|
||||
for i := len(hiddenAPIScopes) - 1; i >= 0; i-- {
|
||||
apiScope := hiddenAPIScopes[i]
|
||||
stubsForAPIScope := s[apiScope]
|
||||
|
Reference in New Issue
Block a user