Make GetDirectDep implementation match comment

The comment on the interface of GetDirectDep states if there are
multiple deps with different tags, the first will be returned; however,
the current behavior is to panic if there are multiple deps. The
behavior now:
* a single dep, return the module and tag
* a single module with different tags: return module with first tag
* multiple modules: panic
* no module: return nil, nil

Bug: 186488405
Test: ~/aosp/build/bazel/ci/bp2build.sh
Test: m nothing
Change-Id: Id1e7315e7874b4a683ad7357ed2793822315821f
This commit is contained in:
Liz Kammer
2021-04-26 15:47:28 -04:00
parent c860588763
commit 2b50ce669c
3 changed files with 62 additions and 8 deletions

View File

@@ -719,6 +719,31 @@ cc_library_static {
"not-for-x86_64.c",
],
}),
)`},
},
{
description: "cc_library_static multiple dep same name panic",
moduleTypeUnderTest: "cc_library_static",
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
filesystem: map[string]string{},
bp: soongCcLibraryStaticPreamble + `
cc_library_static { name: "static_dep" }
cc_library_static {
name: "foo_static",
static_libs: ["static_dep"],
whole_static_libs: ["static_dep"],
}`,
expectedBazelTargets: []string{`cc_library_static(
name = "foo_static",
copts = ["-I."],
deps = [":static_dep"],
linkstatic = True,
)`, `cc_library_static(
name = "static_dep",
copts = ["-I."],
linkstatic = True,
)`},
},
}