Merge "Fix sdk_version: "system_current" when Platform_sdk_final=true"
am: b007b2bde5
Change-Id: Ic25cf990d32975fabaef3b94c57f307d69d35d5d
This commit is contained in:
@@ -200,12 +200,14 @@ func saveToConfigFile(config jsonConfigurable, filename string) error {
|
|||||||
func TestConfig(buildDir string, env map[string]string) Config {
|
func TestConfig(buildDir string, env map[string]string) Config {
|
||||||
config := &config{
|
config := &config{
|
||||||
productVariables: productVariables{
|
productVariables: productVariables{
|
||||||
DeviceName: stringPtr("test_device"),
|
DeviceName: stringPtr("test_device"),
|
||||||
Platform_sdk_version: intPtr(26),
|
Platform_sdk_version: intPtr(26),
|
||||||
AAPTConfig: []string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
|
DeviceSystemSdkVersions: []string{"14", "15"},
|
||||||
AAPTPreferredConfig: stringPtr("xhdpi"),
|
Platform_systemsdk_versions: []string{"25", "26"},
|
||||||
AAPTCharacteristics: stringPtr("nosdcard"),
|
AAPTConfig: []string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
|
||||||
AAPTPrebuiltDPI: []string{"xhdpi", "xxhdpi"},
|
AAPTPreferredConfig: stringPtr("xhdpi"),
|
||||||
|
AAPTCharacteristics: stringPtr("nosdcard"),
|
||||||
|
AAPTPrebuiltDPI: []string{"xhdpi", "xxhdpi"},
|
||||||
},
|
},
|
||||||
|
|
||||||
buildDir: buildDir,
|
buildDir: buildDir,
|
||||||
|
@@ -138,6 +138,9 @@ func testContext(config android.Config, bp string,
|
|||||||
"prebuilts/sdk/17/public/android.jar": nil,
|
"prebuilts/sdk/17/public/android.jar": nil,
|
||||||
"prebuilts/sdk/17/public/framework.aidl": nil,
|
"prebuilts/sdk/17/public/framework.aidl": nil,
|
||||||
"prebuilts/sdk/17/system/android.jar": 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/core/android.jar": nil,
|
||||||
"prebuilts/sdk/current/public/android.jar": nil,
|
"prebuilts/sdk/current/public/android.jar": nil,
|
||||||
"prebuilts/sdk/current/public/framework.aidl": nil,
|
"prebuilts/sdk/current/public/framework.aidl": nil,
|
||||||
|
@@ -84,7 +84,7 @@ func decodeSdkDep(ctx android.BaseContext, sdkContext sdkContext) sdkDep {
|
|||||||
v = strconv.Itoa(latestSdkVersion)
|
v = strconv.Itoa(latestSdkVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
i, err := sdkVersionToNumber(ctx, v)
|
numericSdkVersion, err := sdkVersionToNumber(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.PropertyErrorf("sdk_version", "%s", err)
|
ctx.PropertyErrorf("sdk_version", "%s", err)
|
||||||
return sdkDep{}
|
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)
|
// 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)
|
// 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()
|
allowed_versions := ctx.DeviceConfig().PlatformSystemSdkVersions()
|
||||||
if ctx.DeviceSpecific() || ctx.SocSpecific() {
|
if ctx.DeviceSpecific() || ctx.SocSpecific() {
|
||||||
if len(ctx.DeviceConfig().SystemSdkVersions()) > 0 {
|
if len(ctx.DeviceConfig().SystemSdkVersions()) > 0 {
|
||||||
allowed_versions = ctx.DeviceConfig().SystemSdkVersions()
|
allowed_versions = ctx.DeviceConfig().SystemSdkVersions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
version := strings.TrimPrefix(v, "system_")
|
if len(allowed_versions) > 0 && !android.InList(strconv.Itoa(numericSdkVersion), allowed_versions) {
|
||||||
if len(allowed_versions) > 0 && !android.InList(version, allowed_versions) {
|
|
||||||
ctx.PropertyErrorf("sdk_version", "incompatible sdk version %q. System SDK version should be one of %q",
|
ctx.PropertyErrorf("sdk_version", "incompatible sdk version %q. System SDK version should be one of %q",
|
||||||
v, allowed_versions)
|
v, allowed_versions)
|
||||||
}
|
}
|
||||||
|
@@ -50,11 +50,11 @@ var classpathTestcases = []struct {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
||||||
name: "sdk v14",
|
name: "sdk v25",
|
||||||
properties: `sdk_version: "14",`,
|
properties: `sdk_version: "25",`,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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",
|
name: "system_25",
|
||||||
properties: `sdk_version: "system_14",`,
|
properties: `sdk_version: "system_25",`,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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,
|
unbundled: true,
|
||||||
properties: `sdk_version: "14",`,
|
properties: `sdk_version: "25",`,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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,
|
pdk: true,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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",
|
name: "pdk current",
|
||||||
@@ -170,15 +170,15 @@ var classpathTestcases = []struct {
|
|||||||
properties: `sdk_version: "current",`,
|
properties: `sdk_version: "current",`,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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,
|
pdk: true,
|
||||||
properties: `sdk_version: "14",`,
|
properties: `sdk_version: "25",`,
|
||||||
bootclasspath: []string{`""`},
|
bootclasspath: []string{`""`},
|
||||||
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
|
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)
|
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())
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -28,7 +28,6 @@ func TestConfig(buildDir string, env map[string]string) android.Config {
|
|||||||
env["ANDROID_JAVA8_HOME"] = "jdk8"
|
env["ANDROID_JAVA8_HOME"] = "jdk8"
|
||||||
}
|
}
|
||||||
config := android.TestArchConfig(buildDir, env)
|
config := android.TestArchConfig(buildDir, env)
|
||||||
config.TestProductVariables.DeviceSystemSdkVersions = []string{"14", "15"}
|
|
||||||
|
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user