Loading java/app.go +5 −4 Original line number Diff line number Diff line Loading @@ -315,10 +315,6 @@ func (a *AndroidApp) checkAppSdkVersions(ctx android.ModuleContext) { } } if Bool(a.appProperties.Enforce_default_target_sdk_version) { a.SetEnforceDefaultTargetSdkVersion(true) } a.checkPlatformAPI(ctx) a.checkSdkVersions(ctx) } Loading Loading @@ -639,6 +635,11 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { a.aapt.noticeFile = android.OptionalPathForPath(noticeAssetPath) } // For apps targeting latest target_sdk_version if Bool(a.appProperties.Enforce_default_target_sdk_version) { a.SetEnforceDefaultTargetSdkVersion(true) } // Process all building blocks, from AAPT to certificates. a.aaptBuildActions(ctx) Loading java/app_test.go +71 −1 Original line number Diff line number Diff line Loading @@ -3203,7 +3203,7 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { updatable: true, }, { name: "[SDK finalised] Enforce Target SDK Version: Android.bp has current targetSdkVersion", name: "Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: false, targetSdkVersionInBp: "current", Loading Loading @@ -3259,6 +3259,76 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { } } func TestEnforceDefaultAppTargetSdkVersionFlagForTests(t *testing.T) { platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { name string enforceDefaultTargetSdkVersion bool expectedError string platform_sdk_final bool targetSdkVersionInBp string targetSdkVersionExpected string }{ { name: "Not enforcing Target SDK Version: Android.bp has older targetSdkVersion", enforceDefaultTargetSdkVersion: false, targetSdkVersionInBp: "29", targetSdkVersionExpected: "29", }, { name: "[SDK finalised] Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: true, targetSdkVersionInBp: "current", targetSdkVersionExpected: "33", }, { name: "Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: false, targetSdkVersionInBp: "current", targetSdkVersionExpected: "10000", }, } for _, testCase := range testCases { errExpected := testCase.expectedError != "" bp := fmt.Sprintf(` android_test { name: "foo", enforce_default_target_sdk_version: %t, min_sdk_version: "29", target_sdk_version: "%v", } `, testCase.enforceDefaultTargetSdkVersion, testCase.targetSdkVersionInBp) fixture := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.PrepareForTestWithAllowMissingDependencies, android.PrepareForTestWithAndroidMk, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { // explicitly set following platform variables to make the test deterministic variables.Platform_sdk_final = &testCase.platform_sdk_final variables.Platform_sdk_version = &platform_sdk_version variables.Platform_sdk_codename = &platform_sdk_codename variables.Unbundled_build_apps = []string{"sampleModule"} }), ) errorHandler := android.FixtureExpectsNoErrors if errExpected { errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) } result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) if !errExpected { foo := result.ModuleForTests("foo", "android_common") manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) } } } func TestAppMissingCertificateAllowMissingDependencies(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, Loading Loading
java/app.go +5 −4 Original line number Diff line number Diff line Loading @@ -315,10 +315,6 @@ func (a *AndroidApp) checkAppSdkVersions(ctx android.ModuleContext) { } } if Bool(a.appProperties.Enforce_default_target_sdk_version) { a.SetEnforceDefaultTargetSdkVersion(true) } a.checkPlatformAPI(ctx) a.checkSdkVersions(ctx) } Loading Loading @@ -639,6 +635,11 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { a.aapt.noticeFile = android.OptionalPathForPath(noticeAssetPath) } // For apps targeting latest target_sdk_version if Bool(a.appProperties.Enforce_default_target_sdk_version) { a.SetEnforceDefaultTargetSdkVersion(true) } // Process all building blocks, from AAPT to certificates. a.aaptBuildActions(ctx) Loading
java/app_test.go +71 −1 Original line number Diff line number Diff line Loading @@ -3203,7 +3203,7 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { updatable: true, }, { name: "[SDK finalised] Enforce Target SDK Version: Android.bp has current targetSdkVersion", name: "Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: false, targetSdkVersionInBp: "current", Loading Loading @@ -3259,6 +3259,76 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { } } func TestEnforceDefaultAppTargetSdkVersionFlagForTests(t *testing.T) { platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { name string enforceDefaultTargetSdkVersion bool expectedError string platform_sdk_final bool targetSdkVersionInBp string targetSdkVersionExpected string }{ { name: "Not enforcing Target SDK Version: Android.bp has older targetSdkVersion", enforceDefaultTargetSdkVersion: false, targetSdkVersionInBp: "29", targetSdkVersionExpected: "29", }, { name: "[SDK finalised] Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: true, targetSdkVersionInBp: "current", targetSdkVersionExpected: "33", }, { name: "Enforce Target SDK Version: Android.bp has current targetSdkVersion", enforceDefaultTargetSdkVersion: true, platform_sdk_final: false, targetSdkVersionInBp: "current", targetSdkVersionExpected: "10000", }, } for _, testCase := range testCases { errExpected := testCase.expectedError != "" bp := fmt.Sprintf(` android_test { name: "foo", enforce_default_target_sdk_version: %t, min_sdk_version: "29", target_sdk_version: "%v", } `, testCase.enforceDefaultTargetSdkVersion, testCase.targetSdkVersionInBp) fixture := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.PrepareForTestWithAllowMissingDependencies, android.PrepareForTestWithAndroidMk, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { // explicitly set following platform variables to make the test deterministic variables.Platform_sdk_final = &testCase.platform_sdk_final variables.Platform_sdk_version = &platform_sdk_version variables.Platform_sdk_codename = &platform_sdk_codename variables.Unbundled_build_apps = []string{"sampleModule"} }), ) errorHandler := android.FixtureExpectsNoErrors if errExpected { errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) } result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) if !errExpected { foo := result.ModuleForTests("foo", "android_common") manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) } } } func TestAppMissingCertificateAllowMissingDependencies(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, Loading