diff options
author | Cole Faust <colefaust@google.com> | 2024-05-15 21:21:04 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-05-15 21:21:04 +0000 |
commit | 277e444cb3184824580d4a09b0bdc591159f2d17 (patch) | |
tree | 00e61ed680c44a372df427f166666aee5f5b9a9c | |
parent | 6e2d36dacb2018027e8ca91476426303d563baa3 (diff) | |
parent | 7c991b4e339015cb55d7f6a8eb6683d85c881666 (diff) | |
download | soong-277e444cb3184824580d4a09b0bdc591159f2d17.tar.gz |
Merge "Qualify prebuilt_etc apex module name by relative paths" into main
-rw-r--r-- | apex/apex.go | 3 | ||||
-rw-r--r-- | apex/apex_test.go | 39 |
2 files changed, 41 insertions, 1 deletions
diff --git a/apex/apex.go b/apex/apex.go index 9a80ec633..802991009 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1636,7 +1636,8 @@ func apexFileForShBinary(ctx android.BaseModuleContext, sh *sh.ShBinary) apexFil func apexFileForPrebuiltEtc(ctx android.BaseModuleContext, prebuilt prebuilt_etc.PrebuiltEtcModule, outputFile android.Path) apexFile { dirInApex := filepath.Join(prebuilt.BaseDir(), prebuilt.SubDir()) - return newApexFile(ctx, outputFile, outputFile.Base(), dirInApex, etc, prebuilt) + makeModuleName := strings.ReplaceAll(filepath.Join(dirInApex, outputFile.Base()), "/", "_") + return newApexFile(ctx, outputFile, makeModuleName, dirInApex, etc, prebuilt) } func apexFileForCompatConfig(ctx android.BaseModuleContext, config java.PlatformCompatConfigIntf, depName string) apexFile { diff --git a/apex/apex_test.go b/apex/apex_test.go index 9a5c2b49b..74b2eec5b 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -11531,3 +11531,42 @@ func TestAconfifDeclarationsValidation(t *testing.T) { "depend on java_aconfig_library not passed as an input", aconfigFlagArgs, fmt.Sprintf("%s/%s/intermediate.pb", outDir, "quux")) } + +func TestMultiplePrebuiltsWithSameBase(t *testing.T) { + ctx := testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + prebuilts: ["myetc", "myetc2"], + min_sdk_version: "29", + } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + prebuilt_etc { + name: "myetc", + src: "myprebuilt", + filename: "myfilename", + } + prebuilt_etc { + name: "myetc2", + sub_dir: "mysubdir", + src: "myprebuilt", + filename: "myfilename", + } + `, withFiles(android.MockFS{ + "packages/modules/common/build/allowed_deps.txt": nil, + })) + + ab := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*apexBundle) + data := android.AndroidMkDataForTest(t, ctx, ab) + var builder strings.Builder + data.Custom(&builder, ab.BaseModuleName(), "TARGET_", "", data) + androidMk := builder.String() + + android.AssertStringDoesContain(t, "not found", androidMk, "LOCAL_MODULE := etc_myfilename.myapex") + android.AssertStringDoesContain(t, "not found", androidMk, "LOCAL_MODULE := etc_mysubdir_myfilename.myapex") +} |