diff options
Diffstat (limited to 'java/dex_test.go')
-rw-r--r-- | java/dex_test.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/java/dex_test.go b/java/dex_test.go index eb017d5e9..4862d06c9 100644 --- a/java/dex_test.go +++ b/java/dex_test.go @@ -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, + } +}`) +} |