diff options
Diffstat (limited to 'sdk/java_sdk_test.go')
-rw-r--r-- | sdk/java_sdk_test.go | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go index 51903ce39..2ade146b7 100644 --- a/sdk/java_sdk_test.go +++ b/sdk/java_sdk_test.go @@ -352,6 +352,73 @@ java_import { }) } +func TestSnapshotWithJavaLibrary_MinSdkVersion(t *testing.T) { + runTest := func(t *testing.T, targetBuildRelease, minSdkVersion, expectedMinSdkVersion string) { + result := android.GroupFixturePreparers( + prepareForSdkTestWithJava, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.Platform_version_active_codenames = []string{"S", "Tiramisu", "Unfinalized"} + }), + android.FixtureMergeEnv(map[string]string{ + "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease, + }), + ).RunTestWithBp(t, fmt.Sprintf(` + sdk { + name: "mysdk", + java_header_libs: ["mylib"], + } + + java_library { + name: "mylib", + srcs: ["Test.java"], + system_modules: "none", + sdk_version: "none", + compile_dex: true, + min_sdk_version: "%s", + } + `, minSdkVersion)) + + expectedMinSdkVersionLine := "" + if expectedMinSdkVersion != "" { + expectedMinSdkVersionLine = fmt.Sprintf(" min_sdk_version: %q,\n", expectedMinSdkVersion) + } + + CheckSnapshot(t, result, "mysdk", "", + checkAndroidBpContents(fmt.Sprintf(` +// This is auto-generated. DO NOT EDIT. + +java_import { + name: "mylib", + prefer: false, + visibility: ["//visibility:public"], + apex_available: ["//apex_available:platform"], + jars: ["java/mylib.jar"], +%s} +`, expectedMinSdkVersionLine)), + ) + } + + t.Run("min_sdk_version=S in S", func(t *testing.T) { + // min_sdk_version was not added to java_import until Tiramisu. + runTest(t, "S", "S", "") + }) + + t.Run("min_sdk_version=S in Tiramisu", func(t *testing.T) { + // The canonical form of S is 31. + runTest(t, "Tiramisu", "S", "31") + }) + + t.Run("min_sdk_version=24 in Tiramisu", func(t *testing.T) { + // A numerical min_sdk_version is already in canonical form. + runTest(t, "Tiramisu", "24", "24") + }) + + t.Run("min_sdk_version=Unfinalized in latest", func(t *testing.T) { + // An unfinalized min_sdk_version has no numeric value yet. + runTest(t, "", "Unfinalized", "Unfinalized") + }) +} + func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) { result := android.GroupFixturePreparers( prepareForSdkTestWithJava, |