blob: 58c0a703d2a65b516157e7230e08c2ceda29c0b5 [file] [log] [blame]
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -04001package bp2build
2
3import (
Trevor Radcliffe58ea4512022-04-07 20:36:39 +00004 "fmt"
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -04005 "testing"
6
7 "android/soong/cc"
8)
9
10func TestSharedPrebuiltLibrary(t *testing.T) {
Trevor Radcliffe1b4b2d92022-09-01 18:57:01 +000011 RunBp2BuildTestCaseSimple(t,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000012 Bp2buildTestCase{
13 Description: "prebuilt library shared simple",
14 ModuleTypeUnderTest: "cc_prebuilt_library_shared",
15 ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
16 Filesystem: map[string]string{
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040017 "libf.so": "",
18 },
Sam Delmerico3177a6e2022-06-21 19:28:33 +000019 Blueprint: `
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040020cc_prebuilt_library_shared {
21 name: "libtest",
22 srcs: ["libf.so"],
23 bazel_module: { bp2build_available: true },
24}`,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000025 ExpectedBazelTargets: []string{
Alex Márquez Pérez Muñíz Díaz Púras Thaureauxc5184ec2022-10-17 14:48:57 +000026 MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{
Liz Kammer78cfdaa2021-11-08 12:56:31 -050027 "shared_library": `"libf.so"`,
28 }),
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040029 },
30 })
31}
32
33func TestSharedPrebuiltLibraryWithArchVariance(t *testing.T) {
Trevor Radcliffe1b4b2d92022-09-01 18:57:01 +000034 RunBp2BuildTestCaseSimple(t,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000035 Bp2buildTestCase{
36 Description: "prebuilt library shared with arch variance",
37 ModuleTypeUnderTest: "cc_prebuilt_library_shared",
38 ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
39 Filesystem: map[string]string{
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040040 "libf.so": "",
41 "libg.so": "",
42 },
Sam Delmerico3177a6e2022-06-21 19:28:33 +000043 Blueprint: `
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040044cc_prebuilt_library_shared {
45 name: "libtest",
46 arch: {
47 arm64: { srcs: ["libf.so"], },
48 arm: { srcs: ["libg.so"], },
49 },
50 bazel_module: { bp2build_available: true },
51}`,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000052 ExpectedBazelTargets: []string{
Alex Márquez Pérez Muñíz Díaz Púras Thaureauxc5184ec2022-10-17 14:48:57 +000053 MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{
Liz Kammer78cfdaa2021-11-08 12:56:31 -050054 "shared_library": `select({
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040055 "//build/bazel/platforms/arch:arm": "libg.so",
56 "//build/bazel/platforms/arch:arm64": "libf.so",
57 "//conditions:default": None,
Liz Kammer78cfdaa2021-11-08 12:56:31 -050058 })`,
59 }),
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux7fa06962021-10-25 10:28:33 -040060 },
61 })
62}
Trevor Radcliffe58ea4512022-04-07 20:36:39 +000063
64func TestSharedPrebuiltLibrarySharedStanzaFails(t *testing.T) {
Trevor Radcliffe1b4b2d92022-09-01 18:57:01 +000065 RunBp2BuildTestCaseSimple(t,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000066 Bp2buildTestCase{
67 Description: "prebuilt library shared with shared stanza fails because multiple sources",
68 ModuleTypeUnderTest: "cc_prebuilt_library_shared",
69 ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory,
70 Filesystem: map[string]string{
Trevor Radcliffe58ea4512022-04-07 20:36:39 +000071 "libf.so": "",
72 "libg.so": "",
73 },
Sam Delmerico3177a6e2022-06-21 19:28:33 +000074 Blueprint: `
Trevor Radcliffe58ea4512022-04-07 20:36:39 +000075cc_prebuilt_library_shared {
76 name: "libtest",
77 srcs: ["libf.so"],
78 shared: {
79 srcs: ["libg.so"],
80 },
81 bazel_module: { bp2build_available: true},
82}`,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000083 ExpectedErr: fmt.Errorf("Expected at most one source file"),
Trevor Radcliffe58ea4512022-04-07 20:36:39 +000084 })
85}