diff options
author | 2021-12-02 19:39:35 +0900 | |
---|---|---|
committer | 2021-12-09 18:28:47 +0900 | |
commit | 1fdd6ca88a192c61abe31d2f7a7f5721cafca1f8 (patch) | |
tree | 084dabd09cda75a1ed18854d7e80480665b002ee /apex/apex_test.go | |
parent | ea8b7771f11aa319c0b0606feffc54a92138ab9b (diff) |
Relax apex package restriction for T+ jars
The ART AOT exemption only applies to Q/R/S, so module jars that have
min_sdk T+ do not need to follow the module package restriction, even if
they are part of a Q/R/S module (but not loaded on Q/R/S).
Relax the restriction to only apply to jars that have min_sdk before T.
Bug: 208773835
Test: m (runs apex tests)
Change-Id: I2c3ad8984ca05ad763bf6162bd478f93ab4ee650
Diffstat (limited to 'apex/apex_test.go')
-rw-r--r-- | apex/apex_test.go | 84 |
1 files changed, 82 insertions, 2 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index 3b9b13acb..3cc312dbd 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -7359,6 +7359,7 @@ func TestApexPermittedPackagesRules(t *testing.T) { apex_available: ["myapex"], sdk_version: "none", system_modules: "none", + min_sdk_version: "30", } java_library { name: "nonbcp_lib2", @@ -7367,9 +7368,11 @@ func TestApexPermittedPackagesRules(t *testing.T) { permitted_packages: ["a.b"], sdk_version: "none", system_modules: "none", + min_sdk_version: "30", } apex { name: "myapex", + min_sdk_version: "30", key: "myapex.key", java_libs: ["bcp_lib1", "nonbcp_lib2"], updatable: false, @@ -7382,8 +7385,82 @@ func TestApexPermittedPackagesRules(t *testing.T) { }, }, { - name: "Bootclasspath apex jar not satisfying allowed module packages.", - expectedError: `module "bcp_lib2" .* which is restricted because jars that are part of the myapex module may only allow these packages: foo.bar. Please jarjar or move code around.`, + name: "Bootclasspath apex jar not satisfying allowed module packages on Q.", + expectedError: `module "bcp_lib2" .* which is restricted because jars that are part of the myapex module may only allow these packages: foo.bar with min_sdk < T. Please jarjar or move code around.`, + bp: ` + java_library { + name: "bcp_lib1", + srcs: ["lib1/src/*.java"], + apex_available: ["myapex"], + permitted_packages: ["foo.bar"], + sdk_version: "none", + system_modules: "none", + min_sdk_version: "29", + } + java_library { + name: "bcp_lib2", + srcs: ["lib2/src/*.java"], + apex_available: ["myapex"], + permitted_packages: ["foo.bar", "bar.baz"], + sdk_version: "none", + system_modules: "none", + min_sdk_version: "29", + } + apex { + name: "myapex", + min_sdk_version: "29", + key: "myapex.key", + java_libs: ["bcp_lib1", "bcp_lib2"], + updatable: false, + } + `, + bootJars: []string{"bcp_lib1", "bcp_lib2"}, + modulesPackages: map[string][]string{ + "myapex": []string{ + "foo.bar", + }, + }, + }, + { + name: "Bootclasspath apex jar not satisfying allowed module packages on R.", + expectedError: `module "bcp_lib2" .* which is restricted because jars that are part of the myapex module may only allow these packages: foo.bar with min_sdk < T. Please jarjar or move code around.`, + bp: ` + java_library { + name: "bcp_lib1", + srcs: ["lib1/src/*.java"], + apex_available: ["myapex"], + permitted_packages: ["foo.bar"], + sdk_version: "none", + system_modules: "none", + min_sdk_version: "30", + } + java_library { + name: "bcp_lib2", + srcs: ["lib2/src/*.java"], + apex_available: ["myapex"], + permitted_packages: ["foo.bar", "bar.baz"], + sdk_version: "none", + system_modules: "none", + min_sdk_version: "30", + } + apex { + name: "myapex", + min_sdk_version: "30", + key: "myapex.key", + java_libs: ["bcp_lib1", "bcp_lib2"], + updatable: false, + } + `, + bootJars: []string{"bcp_lib1", "bcp_lib2"}, + modulesPackages: map[string][]string{ + "myapex": []string{ + "foo.bar", + }, + }, + }, + { + name: "Bootclasspath apex jar >= T not satisfying Q/R/S allowed module packages.", + expectedError: "", bp: ` java_library { name: "bcp_lib1", @@ -7392,6 +7469,7 @@ func TestApexPermittedPackagesRules(t *testing.T) { permitted_packages: ["foo.bar"], sdk_version: "none", system_modules: "none", + min_sdk_version: "current", } java_library { name: "bcp_lib2", @@ -7400,9 +7478,11 @@ func TestApexPermittedPackagesRules(t *testing.T) { permitted_packages: ["foo.bar", "bar.baz"], sdk_version: "none", system_modules: "none", + min_sdk_version: "current", } apex { name: "myapex", + min_sdk_version: "current", key: "myapex.key", java_libs: ["bcp_lib1", "bcp_lib2"], updatable: false, |