Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f688004 authored by Patrice Arruda's avatar Patrice Arruda
Browse files

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
parent d8259903
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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
}
+37 −0
Original line number Diff line number Diff line
@@ -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)
			}
		})
	}
}