Make dex_preopt.enable_prof_rewrite=false an error for optimized apps
If profile guided dexpreopt _and_ optimization/obfuscation is true, then apps must use the rewritten profile created by r8/d8 Bug: 335418838 Test: m nothing --no-skip-soong-tests Change-Id: Iac45b614f43e52ac40ad1d13df0338bcafa788c3
This commit is contained in:
@@ -689,3 +689,27 @@ func TestR8FlagsArtProfile(t *testing.T) {
|
||||
"--create-profile-from=out/soong/.intermediates/app/android_common/profile.prof.txt --output-profile-type=app",
|
||||
)
|
||||
}
|
||||
|
||||
// This test checks that users explicitly set `enable_profile_rewriting` to true when the following are true
|
||||
// 1. optimize or obfuscate is enabled AND
|
||||
// 2. dex_preopt.profile_guided is enabled
|
||||
//
|
||||
// The rewritten profile should be used since the dex signatures in the checked-in profile will not match the optimized binary.
|
||||
func TestEnableProfileRewritingIsRequiredForOptimizedApps(t *testing.T) {
|
||||
testJavaError(t,
|
||||
"Enable_profile_rewriting must be true when profile_guided dexpreopt and R8 optimization/obfuscation is turned on",
|
||||
`
|
||||
android_app {
|
||||
name: "app",
|
||||
srcs: ["foo.java"],
|
||||
platform_apis: true,
|
||||
dex_preopt: {
|
||||
profile_guided: true,
|
||||
profile: "profile.txt.prof",
|
||||
// enable_profile_rewriting is not set, this is an error
|
||||
},
|
||||
optimize: {
|
||||
optimize: true,
|
||||
}
|
||||
}`)
|
||||
}
|
||||
|
Reference in New Issue
Block a user