Loading apex/apex_test.go +28 −0 Original line number Diff line number Diff line Loading @@ -2128,6 +2128,34 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { min_sdk_version: "30", } `) // Skip check for modules compiling against core API surface testApex(t, ` apex { name: "myapex", key: "myapex.key", java_libs: ["libfoo"], min_sdk_version: "29", } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } java_library { name: "libfoo", srcs: ["Foo.java"], apex_available: [ "myapex", ], // Compile against core API surface sdk_version: "core_current", min_sdk_version: "30", } `) } func TestApexMinSdkVersion_Okay(t *testing.T) { Loading java/base.go +8 −5 Original line number Diff line number Diff line Loading @@ -1845,15 +1845,18 @@ func (j *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Module) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { sdkSpec := j.MinSdkVersion(ctx) if !sdkSpec.Specified() { sdkVersionSpec := j.SdkVersion(ctx) minSdkVersionSpec := j.MinSdkVersion(ctx) if !minSdkVersionSpec.Specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.Kind == android.SdkCore { // If the module is compiling against core (via sdk_version), skip comparison check. if sdkVersionSpec.Kind == android.SdkCore { return nil } if sdkSpec.ApiLevel.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", sdkSpec.ApiLevel) minSdkVersion := minSdkVersionSpec.ApiLevel if minSdkVersion.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", minSdkVersion) } return nil } Loading java/java.go +8 −5 Original line number Diff line number Diff line Loading @@ -2166,15 +2166,18 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { sdkSpec := j.MinSdkVersion(ctx) if !sdkSpec.Specified() { sdkVersionSpec := j.SdkVersion(ctx) minSdkVersionSpec := j.MinSdkVersion(ctx) if !minSdkVersionSpec.Specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.Kind == android.SdkCore { // If the module is compiling against core (via sdk_version), skip comparison check. if sdkVersionSpec.Kind == android.SdkCore { return nil } if sdkSpec.ApiLevel.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", sdkSpec.ApiLevel) minSdkVersion := minSdkVersionSpec.ApiLevel if minSdkVersion.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", minSdkVersion) } return nil } Loading Loading
apex/apex_test.go +28 −0 Original line number Diff line number Diff line Loading @@ -2128,6 +2128,34 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { min_sdk_version: "30", } `) // Skip check for modules compiling against core API surface testApex(t, ` apex { name: "myapex", key: "myapex.key", java_libs: ["libfoo"], min_sdk_version: "29", } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } java_library { name: "libfoo", srcs: ["Foo.java"], apex_available: [ "myapex", ], // Compile against core API surface sdk_version: "core_current", min_sdk_version: "30", } `) } func TestApexMinSdkVersion_Okay(t *testing.T) { Loading
java/base.go +8 −5 Original line number Diff line number Diff line Loading @@ -1845,15 +1845,18 @@ func (j *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Module) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { sdkSpec := j.MinSdkVersion(ctx) if !sdkSpec.Specified() { sdkVersionSpec := j.SdkVersion(ctx) minSdkVersionSpec := j.MinSdkVersion(ctx) if !minSdkVersionSpec.Specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.Kind == android.SdkCore { // If the module is compiling against core (via sdk_version), skip comparison check. if sdkVersionSpec.Kind == android.SdkCore { return nil } if sdkSpec.ApiLevel.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", sdkSpec.ApiLevel) minSdkVersion := minSdkVersionSpec.ApiLevel if minSdkVersion.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", minSdkVersion) } return nil } Loading
java/java.go +8 −5 Original line number Diff line number Diff line Loading @@ -2166,15 +2166,18 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { sdkSpec := j.MinSdkVersion(ctx) if !sdkSpec.Specified() { sdkVersionSpec := j.SdkVersion(ctx) minSdkVersionSpec := j.MinSdkVersion(ctx) if !minSdkVersionSpec.Specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.Kind == android.SdkCore { // If the module is compiling against core (via sdk_version), skip comparison check. if sdkVersionSpec.Kind == android.SdkCore { return nil } if sdkSpec.ApiLevel.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", sdkSpec.ApiLevel) minSdkVersion := minSdkVersionSpec.ApiLevel if minSdkVersion.GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", minSdkVersion) } return nil } Loading