diff options
author | Colin Cross <ccross@android.com> | 2019-04-03 14:04:07 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-04-03 14:04:07 -0700 |
commit | 49c87dfae95b0315cc5c7ca2d4491f90b02bcb4b (patch) | |
tree | 450b997b8e161fd0983ec43d0c8b2af13734b5a2 /java | |
parent | 673f43b05f24a3658a82043ce5dc4753834fe262 (diff) | |
parent | 209edee4251d6dbb58571f96773a0d9787d33365 (diff) | |
download | build_soong-49c87dfae95b0315cc5c7ca2d4491f90b02bcb4b.tar.gz build_soong-49c87dfae95b0315cc5c7ca2d4491f90b02bcb4b.tar.bz2 build_soong-49c87dfae95b0315cc5c7ca2d4491f90b02bcb4b.zip |
Merge "Fix sdk_version: "system_current" when Platform_sdk_final=true" am: b007b2bde5 am: 8c3f398c6c
am: 209edee425
Change-Id: I54ea846c9ac2b29354109755225db71dcdaa1527
Diffstat (limited to 'java')
-rw-r--r-- | java/java_test.go | 3 | ||||
-rw-r--r-- | java/sdk.go | 7 | ||||
-rw-r--r-- | java/sdk_test.go | 66 | ||||
-rw-r--r-- | java/testing.go | 1 |
4 files changed, 58 insertions, 19 deletions
diff --git a/java/java_test.go b/java/java_test.go index ec4c100f..41586217 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -138,6 +138,9 @@ func testContext(config android.Config, bp string, "prebuilts/sdk/17/public/android.jar": nil, "prebuilts/sdk/17/public/framework.aidl": nil, "prebuilts/sdk/17/system/android.jar": nil, + "prebuilts/sdk/25/public/android.jar": nil, + "prebuilts/sdk/25/public/framework.aidl": nil, + "prebuilts/sdk/25/system/android.jar": nil, "prebuilts/sdk/current/core/android.jar": nil, "prebuilts/sdk/current/public/android.jar": nil, "prebuilts/sdk/current/public/framework.aidl": nil, diff --git a/java/sdk.go b/java/sdk.go index 0959be7d..48e77465 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -84,7 +84,7 @@ func decodeSdkDep(ctx android.BaseContext, sdkContext sdkContext) sdkDep { v = strconv.Itoa(latestSdkVersion) } - i, err := sdkVersionToNumber(ctx, v) + numericSdkVersion, err := sdkVersionToNumber(ctx, v) if err != nil { ctx.PropertyErrorf("sdk_version", "%s", err) return sdkDep{} @@ -151,15 +151,14 @@ func decodeSdkDep(ctx android.BaseContext, sdkContext sdkContext) sdkDep { // Ensures that the specificed system SDK version is one of BOARD_SYSTEMSDK_VERSIONS (for vendor apks) // or PRODUCT_SYSTEMSDK_VERSIONS (for other apks or when BOARD_SYSTEMSDK_VERSIONS is not set) - if strings.HasPrefix(v, "system_") && i != android.FutureApiLevel { + if strings.HasPrefix(v, "system_") && numericSdkVersion != android.FutureApiLevel { allowed_versions := ctx.DeviceConfig().PlatformSystemSdkVersions() if ctx.DeviceSpecific() || ctx.SocSpecific() { if len(ctx.DeviceConfig().SystemSdkVersions()) > 0 { allowed_versions = ctx.DeviceConfig().SystemSdkVersions() } } - version := strings.TrimPrefix(v, "system_") - if len(allowed_versions) > 0 && !android.InList(version, allowed_versions) { + if len(allowed_versions) > 0 && !android.InList(strconv.Itoa(numericSdkVersion), allowed_versions) { ctx.PropertyErrorf("sdk_version", "incompatible sdk version %q. System SDK version should be one of %q", v, allowed_versions) } diff --git a/java/sdk_test.go b/java/sdk_test.go index a11ea2f7..8ac10baa 100644 --- a/java/sdk_test.go +++ b/java/sdk_test.go @@ -50,11 +50,11 @@ var classpathTestcases = []struct { }, { - name: "sdk v14", - properties: `sdk_version: "14",`, + name: "sdk v25", + properties: `sdk_version: "25",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/14/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, { @@ -72,11 +72,11 @@ var classpathTestcases = []struct { }, { - name: "system_14", - properties: `sdk_version: "system_14",`, + name: "system_25", + properties: `sdk_version: "system_25",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/14/system/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/system/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, { @@ -140,12 +140,12 @@ var classpathTestcases = []struct { }, { - name: "unbundled sdk v14", + name: "unbundled sdk v25", unbundled: true, - properties: `sdk_version: "14",`, + properties: `sdk_version: "25",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/14/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, { @@ -162,7 +162,7 @@ var classpathTestcases = []struct { pdk: true, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/17/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, { name: "pdk current", @@ -170,15 +170,15 @@ var classpathTestcases = []struct { properties: `sdk_version: "current",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/17/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, { - name: "pdk 14", + name: "pdk 25", pdk: true, - properties: `sdk_version: "14",`, + properties: `sdk_version: "25",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath - classpath: []string{"prebuilts/sdk/14/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, + classpath: []string{"prebuilts/sdk/25/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"}, }, } @@ -285,6 +285,44 @@ func TestClasspath(t *testing.T) { t.Errorf("bootclasspath expected %q != got %q", expected, got) } }) + + // Test again with PLATFORM_VERSION_CODENAME=REL + t.Run("REL", func(t *testing.T) { + config := testConfig(nil) + config.TestProductVariables.Platform_sdk_codename = proptools.StringPtr("REL") + config.TestProductVariables.Platform_sdk_final = proptools.BoolPtr(true) + + if testcase.unbundled { + config.TestProductVariables.Unbundled_build = proptools.BoolPtr(true) + } + if testcase.pdk { + config.TestProductVariables.Pdk = proptools.BoolPtr(true) + } + ctx := testContext(config, bp, nil) + run(t, ctx, config) + + javac := ctx.ModuleForTests("foo", variant).Rule("javac") + + got := javac.Args["bootClasspath"] + if got != bc { + t.Errorf("bootclasspath expected %q != got %q", bc, got) + } + + got = javac.Args["classpath"] + if got != c { + t.Errorf("classpath expected %q != got %q", c, got) + } + + var deps []string + if len(bootclasspath) > 0 && bootclasspath[0] != `""` { + deps = append(deps, bootclasspath...) + } + deps = append(deps, classpath...) + + if !reflect.DeepEqual(javac.Implicits.Strings(), deps) { + t.Errorf("implicits expected %q != got %q", deps, javac.Implicits.Strings()) + } + }) }) } diff --git a/java/testing.go b/java/testing.go index 713eca1a..db06ae16 100644 --- a/java/testing.go +++ b/java/testing.go @@ -28,7 +28,6 @@ func TestConfig(buildDir string, env map[string]string) android.Config { env["ANDROID_JAVA8_HOME"] = "jdk8" } config := android.TestArchConfig(buildDir, env) - config.TestProductVariables.DeviceSystemSdkVersions = []string{"14", "15"} return config } |