Add a new module named prebuilt_dsp.

prebuilt_dsp soong module allows to install DSP related file to
<partition>/etc/dsp directory. If soc_specific property is enabled
to true, it is then installed to <partition>/dsp directory for
vendor image.

Bug: b/157259542
Test: Wrote unit test cases.
Change-Id: I15431a14bf399338a00835718dfe29544be02e34
This commit is contained in:
Patrice Arruda 2020-06-08 21:40:25 +00:00
parent d825990336
commit 0f688004b1
2 changed files with 50 additions and 0 deletions

View File

@ -35,6 +35,7 @@ func init() {
android.RegisterModuleType("prebuilt_usr_share_host", PrebuiltUserShareHostFactory)
android.RegisterModuleType("prebuilt_font", PrebuiltFontFactory)
android.RegisterModuleType("prebuilt_firmware", PrebuiltFirmwareFactory)
android.RegisterModuleType("prebuilt_dsp", PrebuiltDSPFactory)
}
type prebuiltEtcProperties struct {
@ -293,3 +294,15 @@ func PrebuiltFirmwareFactory() android.Module {
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst)
return module
}
// prebuilt_dsp installs a DSP related file to <partition>/etc/dsp directory for system image.
// If soc_specific property is set to true, the DSP related file is installed to the vendor <partition>/dsp
// directory for vendor image.
func PrebuiltDSPFactory() android.Module {
module := &PrebuiltEtc{}
module.socInstallDirBase = "dsp"
InitPrebuiltEtcModule(module, "etc/dsp")
// This module is device-only
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst)
return module
}

View File

@ -65,6 +65,7 @@ func testPrebuiltEtc(t *testing.T, bp string) (*android.TestContext, android.Con
ctx.RegisterModuleType("prebuilt_usr_share_host", PrebuiltUserShareHostFactory)
ctx.RegisterModuleType("prebuilt_font", PrebuiltFontFactory)
ctx.RegisterModuleType("prebuilt_firmware", PrebuiltFirmwareFactory)
ctx.RegisterModuleType("prebuilt_dsp", PrebuiltDSPFactory)
ctx.Register(config)
_, errs := ctx.ParseFileList(".", []string{"Android.bp"})
android.FailIfErrored(t, errs)
@ -281,3 +282,39 @@ func TestPrebuiltFirmwareDirPath(t *testing.T) {
})
}
}
func TestPrebuiltDSPDirPath(t *testing.T) {
targetPath := filepath.Join(buildDir, "/target/product/test_device")
tests := []struct {
description string
config string
expectedPath string
}{{
description: "prebuilt: system dsp",
config: `
prebuilt_dsp {
name: "foo.conf",
src: "foo.conf",
}`,
expectedPath: filepath.Join(targetPath, "system/etc/dsp"),
}, {
description: "prebuilt: vendor dsp",
config: `
prebuilt_dsp {
name: "foo.conf",
src: "foo.conf",
soc_specific: true,
sub_dir: "sub_dir",
}`,
expectedPath: filepath.Join(targetPath, "vendor/dsp/sub_dir"),
}}
for _, tt := range tests {
t.Run(tt.description, func(t *testing.T) {
ctx, _ := testPrebuiltEtc(t, tt.config)
p := ctx.ModuleForTests("foo.conf", "android_arm64_armv8-a").Module().(*PrebuiltEtc)
if p.installDirPath.String() != tt.expectedPath {
t.Errorf("expected %q, got %q", tt.expectedPath, p.installDirPath)
}
})
}
}