Loading android/apex.go +0 −12 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android import ( "fmt" "reflect" "slices" "sort" "strconv" Loading Loading @@ -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 { Loading android/container.go +0 −65 Original line number Diff line number Diff line Loading @@ -15,10 +15,8 @@ package android import ( "fmt" "reflect" "slices" "strings" "github.com/google/blueprint" ) Loading Loading @@ -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 Loading Loading @@ -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) } } } }) } } android/module.go +0 −3 Original line number Diff line number Diff line Loading @@ -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") Loading apex/aconfig_test.go +0 −12 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, { Loading Loading @@ -124,8 +122,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, { Loading Loading @@ -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`, }, Loading Loading @@ -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`, }, Loading Loading @@ -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`, }, Loading Loading @@ -779,8 +769,6 @@ func TestValidationNotPropagateAcrossShared(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, } Loading apex/apex_test.go +4 −59 Original line number Diff line number Diff line Loading @@ -4929,7 +4929,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) { java_import { name: "libfoo", jars: ["libfoo.jar"], sdk_version: "core_current", } java_sdk_library_import { Loading Loading @@ -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: { Loading @@ -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 { Loading @@ -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", } ` Loading @@ -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) { Loading @@ -5075,7 +5040,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) { java_library { name: "libfoo", sdk_version: "core_current", } java_sdk_library_import { Loading Loading @@ -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 { Loading Loading @@ -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 { Loading Loading @@ -5456,7 +5417,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { jars: ["libfoo.jar"], apex_available: ["myapex"], permitted_packages: ["foo"], sdk_version: "core_current", } java_library { Loading @@ -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 { Loading Loading @@ -5555,7 +5514,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { name: "libfoo", jars: ["libfoo.jar"], apex_available: ["myapex"], sdk_version: "core_current", } java_library { Loading @@ -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 { Loading @@ -5583,7 +5540,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { apex_available: ["myapex"], permitted_packages: ["bar"], compile_dex: true, sdk_version: "core_current", } ` Loading Loading @@ -6178,7 +6134,6 @@ func TestApexWithTestHelperApp(t *testing.T) { name: "TesterHelpAppFoo", srcs: ["foo/bar/MyClass.java"], apex_available: [ "myapex" ], sdk_version: "test_current", } `) Loading Loading @@ -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", Loading Loading @@ -8442,7 +8397,6 @@ func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "current", } systemserverclasspath_fragment { Loading Loading @@ -9485,7 +9439,6 @@ func TestApexJavaCoverage(t *testing.T) { srcs: ["mybootclasspathlib.java"], apex_available: ["myapex"], compile_dex: true, sdk_version: "current", } systemserverclasspath_fragment { Loading Loading @@ -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 { Loading @@ -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 { Loading @@ -9818,7 +9769,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) { srcs: ["a.java"], min_sdk_version: "31", apex_available: ["myapex"], sdk_version: "core_current", } `) }) Loading Loading @@ -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", Loading Loading @@ -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", } `) }) Loading Loading @@ -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", Loading Loading
android/apex.go +0 −12 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android import ( "fmt" "reflect" "slices" "sort" "strconv" Loading Loading @@ -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 { Loading
android/container.go +0 −65 Original line number Diff line number Diff line Loading @@ -15,10 +15,8 @@ package android import ( "fmt" "reflect" "slices" "strings" "github.com/google/blueprint" ) Loading Loading @@ -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 Loading Loading @@ -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) } } } }) } }
android/module.go +0 −3 Original line number Diff line number Diff line Loading @@ -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") Loading
apex/aconfig_test.go +0 −12 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, { Loading Loading @@ -124,8 +122,6 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, { Loading Loading @@ -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`, }, Loading Loading @@ -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`, }, Loading Loading @@ -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`, }, Loading Loading @@ -779,8 +769,6 @@ func TestValidationNotPropagateAcrossShared(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "none", system_modules: "none", }`, }, } Loading
apex/apex_test.go +4 −59 Original line number Diff line number Diff line Loading @@ -4929,7 +4929,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) { java_import { name: "libfoo", jars: ["libfoo.jar"], sdk_version: "core_current", } java_sdk_library_import { Loading Loading @@ -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: { Loading @@ -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 { Loading @@ -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", } ` Loading @@ -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) { Loading @@ -5075,7 +5040,6 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) { java_library { name: "libfoo", sdk_version: "core_current", } java_sdk_library_import { Loading Loading @@ -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 { Loading Loading @@ -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 { Loading Loading @@ -5456,7 +5417,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { jars: ["libfoo.jar"], apex_available: ["myapex"], permitted_packages: ["foo"], sdk_version: "core_current", } java_library { Loading @@ -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 { Loading Loading @@ -5555,7 +5514,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { name: "libfoo", jars: ["libfoo.jar"], apex_available: ["myapex"], sdk_version: "core_current", } java_library { Loading @@ -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 { Loading @@ -5583,7 +5540,6 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { apex_available: ["myapex"], permitted_packages: ["bar"], compile_dex: true, sdk_version: "core_current", } ` Loading Loading @@ -6178,7 +6134,6 @@ func TestApexWithTestHelperApp(t *testing.T) { name: "TesterHelpAppFoo", srcs: ["foo/bar/MyClass.java"], apex_available: [ "myapex" ], sdk_version: "test_current", } `) Loading Loading @@ -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", Loading Loading @@ -8442,7 +8397,6 @@ func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) { apex_available: [ "myapex", ], sdk_version: "current", } systemserverclasspath_fragment { Loading Loading @@ -9485,7 +9439,6 @@ func TestApexJavaCoverage(t *testing.T) { srcs: ["mybootclasspathlib.java"], apex_available: ["myapex"], compile_dex: true, sdk_version: "current", } systemserverclasspath_fragment { Loading Loading @@ -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 { Loading @@ -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 { Loading @@ -9818,7 +9769,6 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) { srcs: ["a.java"], min_sdk_version: "31", apex_available: ["myapex"], sdk_version: "core_current", } `) }) Loading Loading @@ -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", Loading Loading @@ -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", } `) }) Loading Loading @@ -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", Loading