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
This commit is contained in:
@@ -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,8 @@ 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",
|
||||
@@ -7392,6 +7395,7 @@ func TestApexPermittedPackagesRules(t *testing.T) {
|
||||
permitted_packages: ["foo.bar"],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
min_sdk_version: "29",
|
||||
}
|
||||
java_library {
|
||||
name: "bcp_lib2",
|
||||
@@ -7400,9 +7404,85 @@ func TestApexPermittedPackagesRules(t *testing.T) {
|
||||
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",
|
||||
srcs: ["lib1/src/*.java"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo.bar"],
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
min_sdk_version: "current",
|
||||
}
|
||||
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: "current",
|
||||
}
|
||||
apex {
|
||||
name: "myapex",
|
||||
min_sdk_version: "current",
|
||||
key: "myapex.key",
|
||||
java_libs: ["bcp_lib1", "bcp_lib2"],
|
||||
updatable: false,
|
||||
|
Reference in New Issue
Block a user