diff --git a/apex/apex.go b/apex/apex.go index 714cf9c4c..7b4f8ff8e 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -2082,13 +2082,13 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { // We do not add this variation to `filesInfo`, as it has no output; // however, we do add the other variations of this module as indirect // dependencies (see below). - return true } else { // Single-output test module (where `test_per_src: false`). af := apexFileForExecutable(ctx, ccTest) af.class = nativeTest filesInfo = append(filesInfo, af) } + return true // track transitive dependencies } else { ctx.PropertyErrorf("tests", "%q is not a cc module", depName) } diff --git a/apex/apex_test.go b/apex/apex_test.go index dea7a087e..b58363e62 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -3145,11 +3145,19 @@ func TestApexWithTests(t *testing.T) { gtest: false, srcs: ["mytest.cpp"], relative_install_path: "test", + shared_libs: ["mylib"], system_shared_libs: [], static_executable: true, stl: "none", } + cc_library { + name: "mylib", + srcs: ["mylib.cpp"], + system_shared_libs: [], + stl: "none", + } + cc_test { name: "mytests", gtest: false, @@ -3169,8 +3177,9 @@ func TestApexWithTests(t *testing.T) { apexRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("apexRule") copyCmds := apexRule.Args["copy_commands"] - // Ensure that test dep is copied into apex. + // Ensure that test dep (and their transitive dependencies) are copied into apex. ensureContains(t, copyCmds, "image.apex/bin/test/mytest") + ensureContains(t, copyCmds, "image.apex/lib64/mylib.so") // Ensure that test deps built with `test_per_src` are copied into apex. ensureContains(t, copyCmds, "image.apex/bin/test/mytest1")