summaryrefslogtreecommitdiff
path: root/apex/builder.go
diff options
context:
space:
mode:
author Gurpreet Singh <gurpreetgs@google.com> 2022-01-24 17:44:05 +0000
committer Gurpreet Singh <gurpreetgs@google.com> 2022-02-01 12:03:48 +0000
commit75d65f360c18806e683aed87679ce5bcc52823d4 (patch)
tree12fc747a1cc501f24995891bc91ccd84893cea24 /apex/builder.go
parent2d305010af8f36a6b5d45560f5304094a3e0a765 (diff)
Add testOnly attribute to AndroidManifest file of apex_test
If the build file contains the apex_test module, add the testOnly attribute to the application element of the corresponding AndroidManifest file and set its value to true. If the testOnly attribute is already present and has value false, then do nothing. Tests added in manifest_fixer_test.py to check if the updated AndroidManifest file has the testOnly attribute set to true or not. Bug: 213310150 Test: atest --host manifest_fixer_test Test: m nothing Test: manually checked the AndroidManifest file generated Change-Id: I36247dbe0261c342d451a4422c314fd8fe0c2369
Diffstat (limited to 'apex/builder.go')
-rw-r--r--apex/builder.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/apex/builder.go b/apex/builder.go
index a66e1e0fc..1a1f22be2 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -397,6 +397,22 @@ func (a *apexBundle) buildBundleConfig(ctx android.ModuleContext) android.Output
return output.OutputPath
}
+func markManifestTestOnly(ctx android.ModuleContext, androidManifestFile android.Path) android.Path {
+ return java.ManifestFixer(java.ManifestFixerParams{
+ Ctx: ctx,
+ Manifest: androidManifestFile,
+ SdkContext: nil,
+ ClassLoaderContexts: nil,
+ IsLibrary: false,
+ UseEmbeddedNativeLibs: false,
+ UsesNonSdkApis: false,
+ UseEmbeddedDex: false,
+ HasNoCode: false,
+ TestOnly: true,
+ LoggingParent: "",
+ })
+}
+
// buildUnflattendApex creates build rules to build an APEX using apexer.
func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
apexType := a.properties.ApexType
@@ -595,6 +611,11 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
if a.properties.AndroidManifest != nil {
androidManifestFile := android.PathForModuleSrc(ctx, proptools.String(a.properties.AndroidManifest))
+
+ if a.testApex {
+ androidManifestFile = markManifestTestOnly(ctx, androidManifestFile)
+ }
+
implicitInputs = append(implicitInputs, androidManifestFile)
optFlags = append(optFlags, "--android_manifest "+androidManifestFile.String())
}