aapt2 flag for target manifest package override

This change adds an aapt2 flag, rename-instrumentation-target-package,
when an android test's instrumention target module's manifest package
name is overridden.

Bug: 122957760
Test: app_test.go, atest DocumentsUITests
Change-Id: I7116a51ec5ec9d61a20cd28509b3af0e383730d7
diff --git a/java/app_test.go b/java/app_test.go
index 317c752..1784fc3 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -747,3 +747,30 @@
 		})
 	}
 }
+
+func TestInstrumentationTargetOverridden(t *testing.T) {
+	bp := `
+		android_app {
+			name: "foo",
+			srcs: ["a.java"],
+		}
+
+		android_test {
+			name: "bar",
+			instrumentation_for: "foo",
+		}
+		`
+	config := testConfig(nil)
+	config.TestProductVariables.ManifestPackageNameOverrides = []string{"foo:org.dandroid.bp"}
+	ctx := testAppContext(config, bp, nil)
+
+	run(t, ctx, config)
+
+	bar := ctx.ModuleForTests("bar", "android_common")
+	res := bar.Output("package-res.apk")
+	aapt2Flags := res.Args["flags"]
+	e := "--rename-instrumentation-target-package org.dandroid.bp"
+	if !strings.Contains(aapt2Flags, e) {
+		t.Errorf("target package renaming flag, %q is missing in aapt2 link flags, %q", e, aapt2Flags)
+	}
+}