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

Commit 2be7f54b authored by Trevor Radcliffe's avatar Trevor Radcliffe
Browse files

Add support and tests for export_*_lib_headers

There are 3 different properties about exporting headers in Soong:

1. export_static_lib_headers
2. export_shared_lib_headers
3. export_header_lib_headers

The static and header cases are already supported in bp2build but
do not have tests. This CL adds support for the shared case and
adds tests for all cases.

Fixes: 236268577
Test: Unit tests
Change-Id: Idfb788271e607919d4ac6bc0e4eb4e6ff8f78e8d
parent 2ff57f9d
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -324,3 +324,69 @@ cc_library_headers {
		},
	})
}

func TestCcLibraryHeadersExportedStaticLibHeadersReexported(t *testing.T) {
	runCcLibraryHeadersTestCase(t, bp2buildTestCase{
		description:                "cc_library_headers exported_static_lib_headers is reexported",
		moduleTypeUnderTest:        "cc_library_headers",
		moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
		filesystem:                 map[string]string{},
		blueprint: soongCcLibraryHeadersPreamble + `
cc_library_headers {
		name: "foo_headers",
		export_static_lib_headers: ["foo_export"],
		static_libs: ["foo_export", "foo_no_reexport"],
    bazel_module: { bp2build_available: true },
}
` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
		expectedBazelTargets: []string{
			makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{
				"deps": `[":foo_export"]`,
			}),
		},
	})
}

func TestCcLibraryHeadersExportedSharedLibHeadersReexported(t *testing.T) {
	runCcLibraryHeadersTestCase(t, bp2buildTestCase{
		description:                "cc_library_headers exported_shared_lib_headers is reexported",
		moduleTypeUnderTest:        "cc_library_headers",
		moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
		filesystem:                 map[string]string{},
		blueprint: soongCcLibraryHeadersPreamble + `
cc_library_headers {
		name: "foo_headers",
		export_shared_lib_headers: ["foo_export"],
		shared_libs: ["foo_export", "foo_no_reexport"],
    bazel_module: { bp2build_available: true },
}
` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
		expectedBazelTargets: []string{
			makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{
				"deps": `[":foo_export"]`,
			}),
		},
	})
}

func TestCcLibraryHeadersExportedHeaderLibHeadersReexported(t *testing.T) {
	runCcLibraryHeadersTestCase(t, bp2buildTestCase{
		description:                "cc_library_headers exported_header_lib_headers is reexported",
		moduleTypeUnderTest:        "cc_library_headers",
		moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
		filesystem:                 map[string]string{},
		blueprint: soongCcLibraryHeadersPreamble + `
cc_library_headers {
		name: "foo_headers",
		export_header_lib_headers: ["foo_export"],
		header_libs: ["foo_export", "foo_no_reexport"],
    bazel_module: { bp2build_available: true },
}
` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
		expectedBazelTargets: []string{
			makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{
				"deps": `[":foo_export"]`,
			}),
		},
	})
}
+1 −0
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ func libraryHeadersBp2Build(ctx android.TopDownMutatorContext, module *Module) {
	baseAttributes := bp2BuildParseBaseProps(ctx, module)
	exportedIncludes := bp2BuildParseExportedIncludes(ctx, module, &baseAttributes.includes)
	linkerAttrs := baseAttributes.linkerAttributes
	(&linkerAttrs.deps).Append(linkerAttrs.dynamicDeps)

	attrs := &bazelCcLibraryHeadersAttributes{
		Export_includes:          exportedIncludes.Includes,