Merge changes I3f967f34,Ia24ddae1 into main
* changes:
Add partial_compile values to metrics
clean up format strings
diff --git a/android/apex.go b/android/apex.go
index bbd6875..08c82eb 100644
--- a/android/apex.go
+++ b/android/apex.go
@@ -69,9 +69,6 @@
// See Prebuilt.ApexInfoMutator for more information.
ForPrebuiltApex bool
- // Returns the name of the test apexes that this module is included in.
- TestApexes []string
-
// Returns the name of the overridden apex (com.android.foo)
BaseApexName string
@@ -283,9 +280,6 @@
// See ApexModule.UniqueApexVariants()
UniqueApexVariationsForDeps bool `blueprint:"mutated"`
-
- // The test apexes that includes this apex variant
- TestApexes []string `blueprint:"mutated"`
}
// Marker interface that identifies dependencies that are excluded from APEX contents.
@@ -389,11 +383,6 @@
return false
}
-// Returns the test apexes that this module is included in.
-func (m *ApexModuleBase) TestApexes() []string {
- return m.ApexProperties.TestApexes
-}
-
// Implements ApexModule
func (m *ApexModuleBase) UniqueApexVariations() bool {
// If needed, this will bel overridden by concrete types inheriting
@@ -547,12 +536,10 @@
// Platform APIs is allowed for this module only when all APEXes containing
// the module are with `use_platform_apis: true`.
merged[index].UsePlatformApis = merged[index].UsePlatformApis && apexInfo.UsePlatformApis
- merged[index].TestApexes = append(merged[index].TestApexes, apexInfo.TestApexes...)
} else {
seen[mergedName] = len(merged)
apexInfo.ApexVariationName = mergedName
apexInfo.InApexVariants = CopyOf(apexInfo.InApexVariants)
- apexInfo.TestApexes = CopyOf(apexInfo.TestApexes)
merged = append(merged, apexInfo)
}
aliases = append(aliases, [2]string{variantName, mergedName})
@@ -660,15 +647,6 @@
SetProvider(ctx, ApexInfoProvider, thisApexInfo)
}
-
- // Set the value of TestApexes in every single apex variant.
- // This allows each apex variant to be aware of the test apexes in the user provided apex_available.
- var testApexes []string
- for _, a := range apexInfos {
- testApexes = append(testApexes, a.TestApexes...)
- }
- base.ApexProperties.TestApexes = testApexes
-
}
func ApexInfoMutator(ctx TopDownMutatorContext, module ApexModule) {
diff --git a/apex/apex.go b/apex/apex.go
index b0d2b54..375d5af 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -988,17 +988,12 @@
}
a.properties.ApexVariationName = apexVariationName
- testApexes := []string{}
- if a.testApex {
- testApexes = []string{apexVariationName}
- }
apexInfo := android.ApexInfo{
ApexVariationName: apexVariationName,
MinSdkVersion: minSdkVersion,
Updatable: a.Updatable(),
UsePlatformApis: a.UsePlatformApis(),
InApexVariants: []string{apexVariationName},
- TestApexes: testApexes,
BaseApexName: mctx.ModuleName(),
ApexAvailableName: proptools.String(a.properties.Apex_available_name),
}
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 90d19bc..fa4cf3b 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -10164,9 +10164,9 @@
expectedError: "Stub libraries should have a single apex_available.*myapex.*otherapex",
},
{
- desc: "stub library can be available to a core apex and a test apex",
+ desc: "stub library can be available to a core apex and a test apex using apex_available_name",
hasStubs: true,
- apexAvailable: `["myapex", "test_myapex"]`,
+ apexAvailable: `["myapex"]`,
},
}
bpTemplate := `
@@ -10191,25 +10191,28 @@
key: "apex.key",
updatable: false,
native_shared_libs: ["libfoo"],
+ apex_available_name: "myapex",
}
apex_key {
name: "apex.key",
}
`
for _, tc := range testCases {
- stubs := ""
- if tc.hasStubs {
- stubs = `stubs: {symbol_file: "libfoo.map.txt"},`
- }
- bp := fmt.Sprintf(bpTemplate, stubs, tc.apexAvailable)
- mockFsFixturePreparer := android.FixtureModifyMockFS(func(fs android.MockFS) {
- fs["system/sepolicy/apex/test_myapex-file_contexts"] = nil
+ t.Run(tc.desc, func(t *testing.T) {
+ stubs := ""
+ if tc.hasStubs {
+ stubs = `stubs: {symbol_file: "libfoo.map.txt"},`
+ }
+ bp := fmt.Sprintf(bpTemplate, stubs, tc.apexAvailable)
+ mockFsFixturePreparer := android.FixtureModifyMockFS(func(fs android.MockFS) {
+ fs["system/sepolicy/apex/test_myapex-file_contexts"] = nil
+ })
+ if tc.expectedError == "" {
+ testApex(t, bp, mockFsFixturePreparer)
+ } else {
+ testApexError(t, tc.expectedError, bp, mockFsFixturePreparer)
+ }
})
- if tc.expectedError == "" {
- testApex(t, bp, mockFsFixturePreparer)
- } else {
- testApexError(t, tc.expectedError, bp, mockFsFixturePreparer)
- }
}
}
diff --git a/cc/cc.go b/cc/cc.go
index d8d2a06..97d4533 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1955,13 +1955,13 @@
return false
}
- _, aaWithoutTestApexes, _ := android.ListSetDifference(c.ApexAvailable(), c.TestApexes())
// Stub libraries should not have more than one apex_available
- if len(aaWithoutTestApexes) > 1 {
+ apexAvailable := android.FirstUniqueStrings(c.ApexAvailable())
+ if len(apexAvailable) > 1 {
return true
}
// Stub libraries should not use the wildcard
- if aaWithoutTestApexes[0] == android.AvailableToAnyApex {
+ if apexAvailable[0] == android.AvailableToAnyApex {
return true
}
// Default: no violation
diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index 5928446..44ba80a 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -211,20 +211,19 @@
})
// Find the apex variant for this module
- apexVariantsWithoutTestApexes := []string{}
+ apexVariants := []string{}
if apexInfo.BaseApexName != "" {
// This is a transitive dependency of an override_apex
- apexVariantsWithoutTestApexes = append(apexVariantsWithoutTestApexes, apexInfo.BaseApexName)
+ apexVariants = append(apexVariants, apexInfo.BaseApexName)
} else {
- _, variants, _ := android.ListSetDifference(apexInfo.InApexVariants, apexInfo.TestApexes)
- apexVariantsWithoutTestApexes = append(apexVariantsWithoutTestApexes, variants...)
+ apexVariants = append(apexVariants, apexInfo.InApexVariants...)
}
if apexInfo.ApexAvailableName != "" {
- apexVariantsWithoutTestApexes = append(apexVariantsWithoutTestApexes, apexInfo.ApexAvailableName)
+ apexVariants = append(apexVariants, apexInfo.ApexAvailableName)
}
disableSource := false
// find the selected apexes
- for _, apexVariant := range apexVariantsWithoutTestApexes {
+ for _, apexVariant := range apexVariants {
if len(psi.GetSelectedModulesForApiDomain(apexVariant)) > 0 {
// If the apex_contribution for this api domain is non-empty, disable the source variant
disableSource = true