Files
build_soong/bp2build/aidl_interface_conversion_test.go
Sam Delmerico 1fa2672be9 add bp2build unit tests for aidl_interface
Bug: 229251008
Test: go test ./bp2build -run TestAidlInterface
Change-Id: Ie7214d5578bc21e348410ca91ea42d7a3190eb3d
2022-08-25 14:47:41 -04:00

250 lines
5.1 KiB
Go

package bp2build
import (
"android/soong/aidl"
"android/soong/android"
"testing"
)
func runAidlInterfaceTestCase(t *testing.T, tc Bp2buildTestCase) {
t.Helper()
RunBp2BuildTestCase(
t,
func(ctx android.RegistrationContext) {
ctx.RegisterModuleType("aidl_interface", aidl.AidlInterfaceFactory)
ctx.RegisterModuleType("aidl_interface_headers", aidl.AidlInterfaceHeadersFactory)
},
tc,
)
}
func TestAidlInterfaceHeaders(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface_headers`,
Blueprint: `
aidl_interface_headers {
name: "aidl-interface-headers",
include_dir: "src",
srcs: [
"src/A.aidl",
],
}
`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_library", "aidl-interface-headers", AttrNameToString{
"strip_import_prefix": `"src"`,
"hdrs": `["src/A.aidl"]`,
}),
},
})
}
func TestAidlInterface(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface with single "latest" aidl_interface import`,
Blueprint: `
aidl_interface_headers {
name: "aidl-interface-headers",
}
aidl_interface {
name: "aidl-interface-import",
versions: [
"1",
"2",
],
}
aidl_interface {
name: "aidl-interface1",
flags: ["--flag1"],
imports: [
"aidl-interface-import-V1",
],
headers: [
"aidl-interface-headers",
],
versions: [
"1",
"2",
"3",
],
}`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_library", "aidl-interface-headers", AttrNameToString{}),
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface-import", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"versions": `[
"1",
"2",
]`,
}),
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface1", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"deps": `[
":aidl-interface-import-V1",
":aidl-interface-headers",
]`,
"flags": `["--flag1"]`,
"versions": `[
"1",
"2",
"3",
]`,
}),
},
})
}
func TestAidlInterfaceWithNoProperties(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface no properties set`,
Blueprint: `
aidl_interface {
name: "aidl-interface1",
}
`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface1", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
}),
},
})
}
func TestAidlInterfaceWithDisabledBackends(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface with some backends disabled`,
Blueprint: `
aidl_interface {
name: "aidl-interface1",
backend: {
ndk: {
enabled: false,
},
cpp: {
enabled: false,
},
},
}
`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface1", AttrNameToString{
"backends": `["java"]`,
}),
},
})
}
func TestAidlInterfaceWithLatestImport(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface with single "latest" aidl_interface import`,
Blueprint: `
aidl_interface {
name: "aidl-interface-import",
versions: [
"1",
"2",
],
}
aidl_interface {
name: "aidl-interface1",
imports: [
"aidl-interface-import",
],
versions: [
"1",
"2",
"3",
],
}`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface-import", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"versions": `[
"1",
"2",
]`,
}),
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface1", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"deps": `[":aidl-interface-import-latest"]`,
"versions": `[
"1",
"2",
"3",
]`,
}),
},
})
}
func TestAidlInterfaceWithVersionedImport(t *testing.T) {
runAidlInterfaceTestCase(t, Bp2buildTestCase{
Description: `aidl_interface with single versioned aidl_interface import`,
Blueprint: `
aidl_interface {
name: "aidl-interface-import",
versions: [
"1",
"2",
],
}
aidl_interface {
name: "aidl-interface1",
imports: [
"aidl-interface-import-V2",
],
versions: [
"1",
"2",
"3",
],
}`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface-import", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"versions": `[
"1",
"2",
]`,
}),
MakeBazelTargetNoRestrictions("aidl_interface", "aidl-interface1", AttrNameToString{
"backends": `[
"cpp",
"java",
"ndk",
]`,
"deps": `[":aidl-interface-import-V2"]`,
"versions": `[
"1",
"2",
"3",
]`,
}),
},
})
}