Revert^3 "Implement detecting container violations."
2a88491afc
Change-Id: Iba4527f391a093703978fe01177b56fec4604b28
This commit is contained in:
committed by
Gerrit Code Review
parent
2a88491afc
commit
33b3a638a5
@@ -16,7 +16,6 @@ package android
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"slices"
|
||||
"sort"
|
||||
"strconv"
|
||||
@@ -146,17 +145,6 @@ func (i ApexInfo) InApexModule(apexModuleName string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// To satisfy the comparable interface
|
||||
func (i ApexInfo) Equal(other any) bool {
|
||||
otherApexInfo, ok := other.(ApexInfo)
|
||||
return ok && i.ApexVariationName == otherApexInfo.ApexVariationName &&
|
||||
i.MinSdkVersion == otherApexInfo.MinSdkVersion &&
|
||||
i.Updatable == otherApexInfo.Updatable &&
|
||||
i.UsePlatformApis == otherApexInfo.UsePlatformApis &&
|
||||
reflect.DeepEqual(i.InApexVariants, otherApexInfo.InApexVariants) &&
|
||||
reflect.DeepEqual(i.InApexModules, otherApexInfo.InApexModules)
|
||||
}
|
||||
|
||||
// ApexTestForInfo stores the contents of APEXes for which this module is a test - although this
|
||||
// module is not part of the APEX - and thus has access to APEX internals.
|
||||
type ApexTestForInfo struct {
|
||||
|
@@ -15,10 +15,8 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
@@ -397,40 +395,6 @@ func (c *ContainersInfo) UpdatableApex() bool {
|
||||
|
||||
var ContainersInfoProvider = blueprint.NewProvider[ContainersInfo]()
|
||||
|
||||
func satisfyAllowedExceptions(ctx ModuleContext, allowedExceptionLabels []exceptionHandleFuncLabel, m, dep Module) bool {
|
||||
for _, label := range allowedExceptionLabels {
|
||||
if exceptionHandleFunctionsTable[label](ctx, m, dep) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (c *ContainersInfo) GetViolations(mctx ModuleContext, m, dep Module, depInfo ContainersInfo) []string {
|
||||
var violations []string
|
||||
|
||||
// Any containers that the module belongs to but the dependency does not belong to must be examined.
|
||||
_, containersUniqueToModule, _ := ListSetDifference(c.belongingContainers, depInfo.belongingContainers)
|
||||
|
||||
// Apex container should be examined even if both the module and the dependency belong to
|
||||
// the apex container to check that the two modules belong to the same apex.
|
||||
if InList(ApexContainer, c.belongingContainers) && !InList(ApexContainer, containersUniqueToModule) {
|
||||
containersUniqueToModule = append(containersUniqueToModule, ApexContainer)
|
||||
}
|
||||
|
||||
for _, containerUniqueToModule := range containersUniqueToModule {
|
||||
for _, restriction := range containerUniqueToModule.restricted {
|
||||
if InList(restriction.dependency, depInfo.belongingContainers) {
|
||||
if !satisfyAllowedExceptions(mctx, restriction.allowedExceptions, m, dep) {
|
||||
violations = append(violations, restriction.errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return violations
|
||||
}
|
||||
|
||||
func generateContainerInfo(ctx ModuleContext) ContainersInfo {
|
||||
var containers []*container
|
||||
|
||||
@@ -472,32 +436,3 @@ func setContainerInfo(ctx ModuleContext) {
|
||||
SetProvider(ctx, ContainersInfoProvider, containersInfo)
|
||||
}
|
||||
}
|
||||
|
||||
func checkContainerViolations(ctx ModuleContext) {
|
||||
if _, ok := ctx.Module().(InstallableModule); ok {
|
||||
containersInfo, _ := getContainerModuleInfo(ctx, ctx.Module())
|
||||
ctx.VisitDirectDepsIgnoreBlueprint(func(dep Module) {
|
||||
if !dep.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
// Pre-existing violating dependencies are tracked in containerDependencyViolationAllowlist.
|
||||
// If this dependency is allowlisted, do not check for violation.
|
||||
// If not, check if this dependency matches any restricted dependency and
|
||||
// satisfies any exception functions, which allows bypassing the
|
||||
// restriction. If all of the exceptions are not satisfied, throw an error.
|
||||
if depContainersInfo, ok := getContainerModuleInfo(ctx, dep); ok {
|
||||
if allowedViolations, ok := ContainerDependencyViolationAllowlist[ctx.ModuleName()]; ok && InList(dep.Name(), allowedViolations) {
|
||||
return
|
||||
} else {
|
||||
violations := containersInfo.GetViolations(ctx, ctx.Module(), dep, depContainersInfo)
|
||||
if len(violations) > 0 {
|
||||
errorMessage := fmt.Sprintf("%s cannot depend on %s. ", ctx.ModuleName(), dep.Name())
|
||||
errorMessage += strings.Join(violations, " ")
|
||||
ctx.ModuleErrorf(errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@@ -1778,9 +1778,6 @@ func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext)
|
||||
}
|
||||
|
||||
setContainerInfo(ctx)
|
||||
if ctx.Config().Getenv("DISABLE_CONTAINER_CHECK") != "true" {
|
||||
checkContainerViolations(ctx)
|
||||
}
|
||||
|
||||
ctx.licenseMetadataFile = PathForModuleOut(ctx, "meta_lic")
|
||||
|
||||
|
@@ -74,8 +74,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
},
|
||||
{
|
||||
@@ -124,8 +122,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
},
|
||||
{
|
||||
@@ -349,8 +345,6 @@ func TestValidationAcrossContainersNotExportedFail(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
expectedError: `.*my_java_library_foo/myapex depends on my_java_aconfig_library_foo/otherapex/production across containers`,
|
||||
},
|
||||
@@ -398,8 +392,6 @@ func TestValidationAcrossContainersNotExportedFail(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
expectedError: `.*my_android_app_foo/myapex depends on my_java_aconfig_library_foo/otherapex/production across containers`,
|
||||
},
|
||||
@@ -701,8 +693,6 @@ func TestValidationAcrossContainersNotExportedFail(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
expectedError: `.*my_android_app_foo/myapex depends on my_java_aconfig_library_foo/otherapex/production across containers`,
|
||||
},
|
||||
@@ -779,8 +769,6 @@ func TestValidationNotPropagateAcrossShared(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}`,
|
||||
},
|
||||
}
|
||||
|
@@ -4929,7 +4929,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
java_import {
|
||||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -4970,22 +4969,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
t.Run("prebuilt with source preferred", func(t *testing.T) {
|
||||
|
||||
bp := `
|
||||
apex {
|
||||
name: "myapex",
|
||||
key: "myapex.key",
|
||||
updatable: false,
|
||||
java_libs: [
|
||||
"libfoo",
|
||||
"libbar",
|
||||
],
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
|
||||
prebuilt_apex {
|
||||
name: "myapex",
|
||||
arch: {
|
||||
@@ -5002,21 +4985,10 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
java_import {
|
||||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "libfoo",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5024,21 +4996,12 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
public: {
|
||||
jars: ["libbar.jar"],
|
||||
},
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
compile_dex: true,
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
name: "libbar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
unsafe_ignore_missing_latest_api: true,
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
`
|
||||
|
||||
@@ -5047,9 +5010,11 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
|
||||
checkDexJarBuildPath(t, ctx, "prebuilt_libfoo")
|
||||
checkDexJarInstallPath(t, ctx, "prebuilt_libfoo")
|
||||
ensureNoSourceVariant(t, ctx, "libfoo")
|
||||
|
||||
checkDexJarBuildPath(t, ctx, "prebuilt_libbar")
|
||||
checkDexJarInstallPath(t, ctx, "prebuilt_libbar")
|
||||
ensureNoSourceVariant(t, ctx, "libbar")
|
||||
})
|
||||
|
||||
t.Run("prebuilt preferred with source", func(t *testing.T) {
|
||||
@@ -5075,7 +5040,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
||||
|
||||
java_library {
|
||||
name: "libfoo",
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5202,7 +5166,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5357,14 +5320,12 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "libfoo",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
apex_available: ["myapex"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5456,7 +5417,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -5464,7 +5424,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
apex_available: ["myapex"],
|
||||
installable: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5555,7 +5514,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -5564,7 +5522,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
installable: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
@@ -5583,7 +5540,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["bar"],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
`
|
||||
|
||||
@@ -6178,7 +6134,6 @@ func TestApexWithTestHelperApp(t *testing.T) {
|
||||
name: "TesterHelpAppFoo",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
apex_available: [ "myapex" ],
|
||||
sdk_version: "test_current",
|
||||
}
|
||||
|
||||
`)
|
||||
@@ -7781,7 +7736,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) {
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
static_libs: ["myotherjar"],
|
||||
libs: ["myotherjar"],
|
||||
apex_available: [
|
||||
"myapex",
|
||||
"myapex.updatable",
|
||||
@@ -8442,7 +8397,6 @@ func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
systemserverclasspath_fragment {
|
||||
@@ -9485,7 +9439,6 @@ func TestApexJavaCoverage(t *testing.T) {
|
||||
srcs: ["mybootclasspathlib.java"],
|
||||
apex_available: ["myapex"],
|
||||
compile_dex: true,
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
systemserverclasspath_fragment {
|
||||
@@ -9801,7 +9754,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
||||
unsafe_ignore_missing_latest_api: true,
|
||||
min_sdk_version: "31",
|
||||
static_libs: ["util"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -9810,7 +9762,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
min_sdk_version: "31",
|
||||
static_libs: ["another_util"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -9818,7 +9769,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
||||
srcs: ["a.java"],
|
||||
min_sdk_version: "31",
|
||||
apex_available: ["myapex"],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
`)
|
||||
})
|
||||
@@ -9874,7 +9824,7 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("bootclasspath_fragment jar must set min_sdk_version", func(t *testing.T) {
|
||||
preparer.
|
||||
preparer.ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(`module "mybootclasspathlib".*must set min_sdk_version`)).
|
||||
RunTestWithBp(t, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
@@ -9905,8 +9855,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
compile_dex: true,
|
||||
unsafe_ignore_missing_latest_api: true,
|
||||
sdk_version: "current",
|
||||
min_sdk_version: "30",
|
||||
}
|
||||
`)
|
||||
})
|
||||
@@ -10159,9 +10107,6 @@ func TestApexLintBcpFragmentSdkLibDeps(t *testing.T) {
|
||||
key: "myapex.key",
|
||||
bootclasspath_fragments: ["mybootclasspathfragment"],
|
||||
min_sdk_version: "29",
|
||||
java_libs: [
|
||||
"jacocoagent",
|
||||
],
|
||||
}
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
|
@@ -104,7 +104,6 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
||||
test: {
|
||||
enabled: true,
|
||||
},
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -750,7 +749,6 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
@@ -924,7 +922,6 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromSource(t *testing.T) {
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -1096,7 +1093,6 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromText(t *testing.T) {
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -1249,7 +1245,6 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
compile_dex: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@@ -92,7 +92,6 @@ func TestCreateClasspathElements(t *testing.T) {
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
installable: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@@ -30,7 +30,7 @@ func TestApexDepsContainers(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForApexTest,
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
java.FixtureWithLastReleaseApis("mybootclasspathlib", "bar"),
|
||||
java.FixtureWithLastReleaseApis("mybootclasspathlib"),
|
||||
).RunTestWithBp(t, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
@@ -68,17 +68,16 @@ func TestApexDepsContainers(t *testing.T) {
|
||||
],
|
||||
compile_dex: true,
|
||||
static_libs: [
|
||||
"food",
|
||||
"foo",
|
||||
"baz",
|
||||
],
|
||||
libs: [
|
||||
"bar.stubs",
|
||||
"bar",
|
||||
],
|
||||
min_sdk_version: "30",
|
||||
sdk_version: "current",
|
||||
}
|
||||
java_library {
|
||||
name: "food",
|
||||
name: "foo",
|
||||
srcs:[
|
||||
"A.java",
|
||||
],
|
||||
@@ -86,15 +85,13 @@ func TestApexDepsContainers(t *testing.T) {
|
||||
"myapex",
|
||||
],
|
||||
min_sdk_version: "30",
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
java_sdk_library {
|
||||
java_library {
|
||||
name: "bar",
|
||||
srcs:[
|
||||
"A.java",
|
||||
],
|
||||
min_sdk_version: "30",
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
java_library {
|
||||
name: "baz",
|
||||
@@ -106,7 +103,6 @@ func TestApexDepsContainers(t *testing.T) {
|
||||
"myapex",
|
||||
],
|
||||
min_sdk_version: "30",
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
`)
|
||||
testcases := []struct {
|
||||
@@ -134,7 +130,7 @@ func TestApexDepsContainers(t *testing.T) {
|
||||
isApexContainer: false,
|
||||
},
|
||||
{
|
||||
moduleName: "food",
|
||||
moduleName: "foo",
|
||||
variant: "android_common_apex30",
|
||||
isSystemContainer: true,
|
||||
isApexContainer: true,
|
||||
@@ -166,7 +162,7 @@ func TestNonUpdatableApexDepsContainers(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForApexTest,
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
java.FixtureWithLastReleaseApis("mybootclasspathlib", "bar"),
|
||||
java.FixtureWithLastReleaseApis("mybootclasspathlib"),
|
||||
).RunTestWithBp(t, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
@@ -203,30 +199,26 @@ func TestNonUpdatableApexDepsContainers(t *testing.T) {
|
||||
],
|
||||
compile_dex: true,
|
||||
static_libs: [
|
||||
"food",
|
||||
"foo",
|
||||
],
|
||||
libs: [
|
||||
"bar.stubs",
|
||||
"bar",
|
||||
],
|
||||
sdk_version: "current",
|
||||
}
|
||||
java_library {
|
||||
name: "food",
|
||||
name: "foo",
|
||||
srcs:[
|
||||
"A.java",
|
||||
],
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
java_sdk_library {
|
||||
java_library {
|
||||
name: "bar",
|
||||
srcs:[
|
||||
"A.java",
|
||||
],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}
|
||||
`)
|
||||
testcases := []struct {
|
||||
@@ -254,7 +246,7 @@ func TestNonUpdatableApexDepsContainers(t *testing.T) {
|
||||
isApexContainer: false,
|
||||
},
|
||||
{
|
||||
moduleName: "food",
|
||||
moduleName: "foo",
|
||||
variant: "android_common_apex10000",
|
||||
isSystemContainer: true,
|
||||
isApexContainer: true,
|
||||
|
@@ -293,7 +293,6 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
|
||||
],
|
||||
srcs: ["b.java"],
|
||||
installable: true,
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
// Add a java_import that is not preferred and so won't have an appropriate apex variant created
|
||||
|
@@ -80,7 +80,6 @@ func TestSystemserverclasspathFragmentContents(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
systemserverclasspath_fragment {
|
||||
@@ -351,7 +350,6 @@ func TestSystemserverclasspathFragmentStandaloneContents(t *testing.T) {
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
sdk_version: "core_current",
|
||||
}
|
||||
|
||||
systemserverclasspath_fragment {
|
||||
|
@@ -593,13 +593,6 @@ func (j *Module) InstallInProduct() bool {
|
||||
return j.ProductSpecific()
|
||||
}
|
||||
|
||||
var _ android.StubsAvailableModule = (*Module)(nil)
|
||||
|
||||
// To safisfy the StubsAvailableModule interface
|
||||
func (j *Module) IsStubsModule() bool {
|
||||
return proptools.Bool(j.properties.Is_stubs_module)
|
||||
}
|
||||
|
||||
func (j *Module) CheckStableSdkVersion(ctx android.BaseModuleContext) error {
|
||||
sdkVersion := j.SdkVersion(ctx)
|
||||
if sdkVersion.Stable() {
|
||||
|
@@ -38,7 +38,6 @@ java_defaults {
|
||||
visibility: ["//visibility:public"],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
is_stubs_module: true,
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -290,7 +289,6 @@ java_defaults {
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
patch_module: "java.base",
|
||||
is_stubs_module: true,
|
||||
}
|
||||
|
||||
// Same as legacy.core.platform.api.stubs, but android annotations are
|
||||
@@ -309,7 +307,6 @@ java_library {
|
||||
"legacy.core.platform.api.stubs",
|
||||
],
|
||||
patch_module: "java.base",
|
||||
is_stubs_module: true,
|
||||
}
|
||||
|
||||
java_library {
|
||||
@@ -342,7 +339,6 @@ java_library {
|
||||
"stable.core.platform.api.stubs",
|
||||
],
|
||||
patch_module: "java.base",
|
||||
is_stubs_module: true,
|
||||
}
|
||||
|
||||
// Used when compiling higher-level code against *.core.platform.api.stubs.
|
||||
|
@@ -54,7 +54,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
name: "foo",
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
enabled: true,
|
||||
},
|
||||
@@ -99,7 +98,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
java_library {
|
||||
name: "foo",
|
||||
installable: true,
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
enabled: false,
|
||||
},
|
||||
@@ -109,7 +107,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
java_library {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
enabled: false,
|
||||
},
|
||||
@@ -147,7 +144,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
compile_dex: true,
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
enabled: false,
|
||||
},
|
||||
@@ -168,7 +164,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
apexVariant: true,
|
||||
enabled: false,
|
||||
@@ -181,7 +176,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
moduleName: "service-foo",
|
||||
apexVariant: true,
|
||||
@@ -195,7 +189,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
moduleName: "prebuilt_service-foo",
|
||||
apexVariant: true,
|
||||
@@ -209,7 +202,6 @@ func TestDexpreoptEnabled(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
moduleName: "service-foo",
|
||||
apexVariant: false,
|
||||
@@ -319,7 +311,6 @@ func TestDexpreoptBuiltInstalledForApex(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
ctx := result.TestContext
|
||||
module := ctx.ModuleForTests("service-foo", "android_common_apex1000")
|
||||
@@ -351,7 +342,6 @@ func TestDexpreoptBuiltInstalledForApex(t *testing.T) {
|
||||
name: "foo",
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
ctx = result.TestContext
|
||||
module = ctx.ModuleForTests("foo", "android_common")
|
||||
@@ -408,7 +398,6 @@ func TestAndroidMkEntriesForApex(t *testing.T) {
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
apex_available: ["com.android.apex1"],
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
ctx := result.TestContext
|
||||
module := ctx.ModuleForTests("service-foo", "android_common_apex1000")
|
||||
@@ -440,7 +429,6 @@ func TestAndroidMkEntriesForApex(t *testing.T) {
|
||||
name: "foo",
|
||||
installable: true,
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
ctx = result.TestContext
|
||||
module = ctx.ModuleForTests("foo", "android_common")
|
||||
@@ -466,7 +454,6 @@ func TestGenerateProfileEvenIfDexpreoptIsDisabled(t *testing.T) {
|
||||
profile: "art-profile",
|
||||
},
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
|
||||
ctx := result.TestContext
|
||||
|
@@ -2099,7 +2099,6 @@ func (module *SdkLibrary) topLevelStubsLibraryProps(mctx android.DefaultableHook
|
||||
props.Dist.Dir = proptools.StringPtr(module.apiDistPath(apiScope))
|
||||
props.Dist.Tag = proptools.StringPtr(".jar")
|
||||
}
|
||||
props.Is_stubs_module = proptools.BoolPtr(true)
|
||||
|
||||
return props
|
||||
}
|
||||
|
@@ -184,10 +184,6 @@ var PrepareForTestWithJacocoInstrumentation = android.GroupFixturePreparers(
|
||||
host_supported: true,
|
||||
srcs: ["Test.java"],
|
||||
sdk_version: "current",
|
||||
apex_available: [
|
||||
"//apex_available:anyapex",
|
||||
"//apex_available:platform",
|
||||
],
|
||||
}
|
||||
`)),
|
||||
)
|
||||
@@ -412,6 +408,7 @@ func gatherRequiredDepsForTest() string {
|
||||
"core.current.stubs",
|
||||
"legacy.core.platform.api.stubs",
|
||||
"stable.core.platform.api.stubs",
|
||||
|
||||
"android_stubs_current_exportable",
|
||||
"android_system_stubs_current_exportable",
|
||||
"android_test_stubs_current_exportable",
|
||||
@@ -419,11 +416,13 @@ func gatherRequiredDepsForTest() string {
|
||||
"android_system_server_stubs_current_exportable",
|
||||
"core.current.stubs.exportable",
|
||||
"legacy.core.platform.api.stubs.exportable",
|
||||
|
||||
"kotlin-stdlib",
|
||||
"kotlin-stdlib-jdk7",
|
||||
"kotlin-stdlib-jdk8",
|
||||
"kotlin-annotations",
|
||||
"stub-annotations",
|
||||
|
||||
"aconfig-annotations-lib",
|
||||
"unsupportedappusage",
|
||||
}
|
||||
@@ -436,7 +435,6 @@ func gatherRequiredDepsForTest() string {
|
||||
sdk_version: "none",
|
||||
system_modules: "stable-core-platform-api-stubs-system-modules",
|
||||
compile_dex: true,
|
||||
is_stubs_module: true,
|
||||
}
|
||||
`, extra)
|
||||
}
|
||||
|
@@ -338,7 +338,6 @@ func testSnapshotWithBootClasspathFragment_Contents(t *testing.T, sdk string, co
|
||||
shared_library: false,
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "2",
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
@@ -349,7 +348,6 @@ func testSnapshotWithBootClasspathFragment_Contents(t *testing.T, sdk string, co
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "2",
|
||||
permitted_packages: ["myothersdklibrary"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
@@ -359,7 +357,6 @@ func testSnapshotWithBootClasspathFragment_Contents(t *testing.T, sdk string, co
|
||||
compile_dex: true,
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "2",
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
@@ -627,7 +624,6 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
|
||||
min_sdk_version: "2",
|
||||
permitted_packages: ["myothersdklibrary"],
|
||||
compile_dex: true,
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
|
||||
@@ -659,7 +655,6 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
|
||||
shared_library: false,
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "2",
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
@@ -882,7 +877,6 @@ func TestSnapshotWithBootclasspathFragment_HiddenAPI(t *testing.T) {
|
||||
public: {enabled: true},
|
||||
permitted_packages: ["mysdklibrary"],
|
||||
min_sdk_version: "current",
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
@@ -901,7 +895,6 @@ func TestSnapshotWithBootclasspathFragment_HiddenAPI(t *testing.T) {
|
||||
package_prefixes: ["newlibrary.all.mine"],
|
||||
single_packages: ["newlibrary.mine"],
|
||||
},
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
@@ -1087,7 +1080,6 @@ func testSnapshotWithBootClasspathFragment_MinSdkVersion(t *testing.T, targetBui
|
||||
shared_library: false,
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "S",
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
@@ -1098,7 +1090,6 @@ func testSnapshotWithBootClasspathFragment_MinSdkVersion(t *testing.T, targetBui
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "Tiramisu",
|
||||
permitted_packages: ["mynewsdklibrary"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
@@ -1296,7 +1287,6 @@ func TestSnapshotWithEmptyBootClasspathFragment(t *testing.T) {
|
||||
shared_library: false,
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "Tiramisu",
|
||||
sdk_version: "current",
|
||||
}
|
||||
java_sdk_library {
|
||||
name: "mynewsdklibrary",
|
||||
@@ -1306,7 +1296,6 @@ func TestSnapshotWithEmptyBootClasspathFragment(t *testing.T) {
|
||||
public: {enabled: true},
|
||||
min_sdk_version: "Tiramisu",
|
||||
permitted_packages: ["mynewsdklibrary"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
|
@@ -80,7 +80,6 @@ func testSnapshotWithSystemServerClasspathFragment(t *testing.T, sdk string, tar
|
||||
dex_preopt: {
|
||||
profile: "art-profile",
|
||||
},
|
||||
sdk_version: "current",
|
||||
}
|
||||
`),
|
||||
).RunTest(t)
|
||||
@@ -111,14 +110,12 @@ func TestSnapshotWithPartialSystemServerClasspathFragment(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
srcs: ["Test.java"],
|
||||
min_sdk_version: "33", // Tiramisu
|
||||
sdk_version: "current",
|
||||
}
|
||||
java_sdk_library {
|
||||
name: "mysdklibrary-future",
|
||||
apex_available: ["myapex"],
|
||||
srcs: ["Test.java"],
|
||||
min_sdk_version: "34", // UpsideDownCake
|
||||
sdk_version: "current",
|
||||
}
|
||||
sdk {
|
||||
name: "mysdk",
|
||||
@@ -202,7 +199,6 @@ func TestSnapshotWithEmptySystemServerClasspathFragment(t *testing.T) {
|
||||
apex_available: ["myapex"],
|
||||
srcs: ["Test.java"],
|
||||
min_sdk_version: "34", // UpsideDownCake
|
||||
sdk_version: "current",
|
||||
}
|
||||
sdk {
|
||||
name: "mysdk",
|
||||
|
Reference in New Issue
Block a user