diff --git a/apex/apex.go b/apex/apex.go index ce463fc2c..505e1fd4c 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1060,6 +1060,8 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { return true // track transitive dependencies } else if ap, ok := child.(*java.AndroidAppImport); ok { filesInfo = append(filesInfo, apexFileForAndroidApp(ctx, ap, pkgName)) + } else if ap, ok := child.(*java.AndroidTestHelperApp); ok { + filesInfo = append(filesInfo, apexFileForAndroidApp(ctx, ap, pkgName)) } else { ctx.PropertyErrorf("apps", "%q is not an android_app module", depName) } diff --git a/apex/apex_test.go b/apex/apex_test.go index 60ed801ab..4236ca6ad 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -2924,6 +2924,36 @@ func TestApexWithAppImports(t *testing.T) { ensureContains(t, copyCmds, "image.apex/priv-app/AppFooPrivPrebuilt/AppFooPrivPrebuilt.apk") } +func TestApexWithTestHelperApp(t *testing.T) { + ctx, _ := testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + apps: [ + "TesterHelpAppFoo", + ], + } + + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + android_test_helper_app { + name: "TesterHelpAppFoo", + srcs: ["foo/bar/MyClass.java"], + } + + `) + + module := ctx.ModuleForTests("myapex", "android_common_myapex_image") + apexRule := module.Rule("apexRule") + copyCmds := apexRule.Args["copy_commands"] + + ensureContains(t, copyCmds, "image.apex/app/TesterHelpAppFoo/TesterHelpAppFoo.apk") +} + func TestApexPropertiesShouldBeDefaultable(t *testing.T) { // libfoo's apex_available comes from cc_defaults testApexError(t, `"myapex" .*: requires "libfoo" that is not available for the APEX`, `