Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54e1473a authored by Paul Duffin's avatar Paul Duffin Committed by Automerger Merge Worker
Browse files

Add test to show issues with widest stub dex jars am: d05bb8ee

Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15128550

Change-Id: I752cd90ce3b17ddae074c9cd092186e51d3fc2c7
parents 611d462e d05bb8ee
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -258,4 +258,8 @@ func TestBootclasspathFragment_StubLibs(t *testing.T) {
	// Check that SdkCorePlatform uses public stubs from the mycoreplatform library.
	corePlatformStubsJar := "out/soong/.intermediates/mycoreplatform.stubs/android_common/dex/mycoreplatform.stubs.jar"
	android.AssertPathsRelativeToTopEquals(t, "core platform dex stubs jar", []string{corePlatformStubsJar}, info.TransitiveStubDexJarsByScope[CorePlatformHiddenAPIScope])

	// Check the widest stubs. This should list the widest stub dex jar provided by each module.
	// TODO(b/179354495): Fix this.
	android.AssertPathsRelativeToTopEquals(t, "widest dex stubs jar", []string{corePlatformStubsJar}, info.TransitiveStubDexJarsByScope.StubDexJarsForWidestAPIScope())
}
+4 −4
Original line number Diff line number Diff line
@@ -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]