From d07833779684182b0b750a5590b017058cabc982 Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Thu, 5 Oct 2023 15:47:07 +0000 Subject: [PATCH] Test changes to prepare for allowlist v2 This implements a number of in-place unit test changes to prepare for some fundamental changes to bp2build ("allowlist v2"). This will change bp2build so that rdeps of unconverted or missing modules will not be converted by bp2build. Bug: 301312260 Test: Unit tests Test: Unit tests, with a local copy of allowlist v2 on Change-Id: I8c8c0a24ba173e213fffcb0f8d7e99845705f4a7 --- bp2build/aar_conversion_test.go | 1 + bp2build/build_conversion_test.go | 13 ------ bp2build/cc_library_conversion_test.go | 42 +++++++++++-------- .../cc_library_headers_conversion_test.go | 24 +++++------ bp2build/gensrcs_conversion_test.go | 27 ++++++++---- bp2build/java_library_conversion_test.go | 2 +- 6 files changed, 56 insertions(+), 53 deletions(-) diff --git a/bp2build/aar_conversion_test.go b/bp2build/aar_conversion_test.go index 57c38db97..475c2d666 100644 --- a/bp2build/aar_conversion_test.go +++ b/bp2build/aar_conversion_test.go @@ -102,6 +102,7 @@ android_library { sdk_version: "current", } `, + StubbedBuildDefinitions: []string{"lib_dep"}, ExpectedBazelTargets: []string{ MakeBazelTarget( "android_library", diff --git a/bp2build/build_conversion_test.go b/bp2build/build_conversion_test.go index dc56a17b0..8e51d9803 100644 --- a/bp2build/build_conversion_test.go +++ b/bp2build/build_conversion_test.go @@ -348,19 +348,6 @@ custom { }), }, }, - { - Description: "non-existent dep", - Blueprint: `custom { - name: "has_dep", - arch_paths: [":dep"], - bazel_module: { bp2build_available: true }, -}`, - ExpectedBazelTargets: []string{ - MakeBazelTarget("custom", "has_dep", AttrNameToString{ - "arch_paths": `[":dep__BP2BUILD__MISSING__DEP"]`, - }), - }, - }, { Description: "arch-variant srcs", Blueprint: `custom { diff --git a/bp2build/cc_library_conversion_test.go b/bp2build/cc_library_conversion_test.go index bc88f86b7..5ddae68eb 100644 --- a/bp2build/cc_library_conversion_test.go +++ b/bp2build/cc_library_conversion_test.go @@ -559,8 +559,8 @@ func TestCcLibraryWholeStaticLibsAlwaysLink(t *testing.T) { ModuleTypeUnderTest: "cc_library", ModuleTypeUnderTestFactory: cc.LibraryFactory, Dir: "foo/bar", - StubbedBuildDefinitions: []string{"//foo/bar:prebuilt_whole_static_lib_for_shared", "//foo/bar:prebuilt_whole_static_lib_for_static", - "//foo/bar:prebuilt_whole_static_lib_for_both"}, + StubbedBuildDefinitions: []string{"//foo/bar:whole_static_lib_for_shared", "//foo/bar:whole_static_lib_for_static", + "//foo/bar:whole_static_lib_for_both"}, Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library { @@ -3355,6 +3355,7 @@ func TestCcLibraryWithTargetApex(t *testing.T) { Description: "cc_library with target.apex", ModuleTypeUnderTest: "cc_library", ModuleTypeUnderTestFactory: cc.LibraryFactory, + StubbedBuildDefinitions: []string{"bar", "baz", "buh"}, Blueprint: ` cc_library { name: "foo", @@ -3366,27 +3367,29 @@ cc_library { exclude_static_libs: ["buh"], } } -}`, +}` + simpleModule("cc_library_static", "baz") + + simpleModule("cc_library_static", "buh") + + simpleModule("cc_library_static", "bar"), ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ - "implementation_deps": `[":baz__BP2BUILD__MISSING__DEP"] + select({ + "implementation_deps": `[":baz"] + select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":buh__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":buh"], })`, - "implementation_dynamic_deps": `[":baz__BP2BUILD__MISSING__DEP"] + select({ + "implementation_dynamic_deps": `[":baz"] + select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":bar__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":bar"], })`, "local_includes": `["."]`, }), MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{ - "implementation_deps": `[":baz__BP2BUILD__MISSING__DEP"] + select({ + "implementation_deps": `[":baz"] + select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":buh__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":buh"], })`, - "implementation_dynamic_deps": `[":baz__BP2BUILD__MISSING__DEP"] + select({ + "implementation_dynamic_deps": `[":baz"] + select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":bar__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":bar"], })`, "local_includes": `["."]`, }), @@ -3412,20 +3415,23 @@ cc_library_static { exclude_static_libs: ["abc"], } } -}`, +}` + simpleModule("cc_library_static", "bar") + + simpleModule("cc_library_static", "baz") + + simpleModule("cc_library_static", "abc"), + StubbedBuildDefinitions: []string{"bar", "baz", "abc"}, ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_static", "foo", AttrNameToString{ "implementation_dynamic_deps": `select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":bar__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":bar"], })`, "dynamic_deps": `select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":baz__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":baz"], })`, "deps": `select({ "//build/bazel/rules/apex:in_apex": [], - "//conditions:default": [":abc__BP2BUILD__MISSING__DEP"], + "//conditions:default": [":abc"], })`, "local_includes": `["."]`, }), @@ -5198,7 +5204,7 @@ ndk_headers { name: "libfoo_headers", from: "from", to: "to", - srcs: ["from/foo.h", "from/foo_other.h"] + srcs: ["foo.h", "foo_other.h"] } `, ExpectedBazelTargets: []string{ @@ -5206,8 +5212,8 @@ ndk_headers { "strip_import_prefix": `"from"`, "import_prefix": `"to"`, "hdrs": `[ - "from/foo.h", - "from/foo_other.h", + "foo.h", + "foo_other.h", ]`, }), }, diff --git a/bp2build/cc_library_headers_conversion_test.go b/bp2build/cc_library_headers_conversion_test.go index e54f05162..5168fe95c 100644 --- a/bp2build/cc_library_headers_conversion_test.go +++ b/bp2build/cc_library_headers_conversion_test.go @@ -70,10 +70,6 @@ func TestCcLibraryHeadersSimple(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers test", Filesystem: map[string]string{ - "lib-1/lib1a.h": "", - "lib-1/lib1b.h": "", - "lib-2/lib2a.h": "", - "lib-2/lib2b.h": "", "dir-1/dir1a.h": "", "dir-1/dir1b.h": "", "dir-2/dir2a.h": "", @@ -86,7 +82,6 @@ func TestCcLibraryHeadersSimple(t *testing.T) { cc_library_headers { name: "foo_headers", export_include_dirs: ["dir-1", "dir-2"], - header_libs: ["lib-1", "lib-2"], arch: { arm64: { @@ -322,7 +317,7 @@ func TestCcLibraryHeadersExportedStaticLibHeadersReexported(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers exported_static_lib_headers is reexported", Filesystem: map[string]string{}, - StubbedBuildDefinitions: []string{"foo_export"}, + StubbedBuildDefinitions: []string{"foo_export", "foo_no_reexport"}, Blueprint: soongCcLibraryHeadersPreamble + ` cc_library_headers { name: "foo_headers", @@ -330,7 +325,8 @@ cc_library_headers { static_libs: ["foo_export", "foo_no_reexport"], bazel_module: { bp2build_available: true }, } -` + simpleModule("cc_library_headers", "foo_export"), +` + simpleModule("cc_library_headers", "foo_export") + + simpleModule("cc_library_headers", "foo_no_reexport"), ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, @@ -343,7 +339,7 @@ func TestCcLibraryHeadersExportedSharedLibHeadersReexported(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers exported_shared_lib_headers is reexported", Filesystem: map[string]string{}, - StubbedBuildDefinitions: []string{"foo_export"}, + StubbedBuildDefinitions: []string{"foo_export", "foo_no_reexport"}, Blueprint: soongCcLibraryHeadersPreamble + ` cc_library_headers { name: "foo_headers", @@ -351,7 +347,8 @@ cc_library_headers { shared_libs: ["foo_export", "foo_no_reexport"], bazel_module: { bp2build_available: true }, } -` + simpleModule("cc_library_headers", "foo_export"), +` + simpleModule("cc_library_headers", "foo_export") + + simpleModule("cc_library_headers", "foo_no_reexport"), ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, @@ -364,7 +361,7 @@ func TestCcLibraryHeadersExportedHeaderLibHeadersReexported(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers exported_header_lib_headers is reexported", Filesystem: map[string]string{}, - StubbedBuildDefinitions: []string{"foo_export"}, + StubbedBuildDefinitions: []string{"foo_export", "foo_no_reexport"}, Blueprint: soongCcLibraryHeadersPreamble + ` cc_library_headers { name: "foo_headers", @@ -372,7 +369,8 @@ cc_library_headers { header_libs: ["foo_export", "foo_no_reexport"], bazel_module: { bp2build_available: true }, } -` + simpleModule("cc_library_headers", "foo_export"), +` + simpleModule("cc_library_headers", "foo_export") + + simpleModule("cc_library_headers", "foo_no_reexport"), ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, @@ -426,7 +424,7 @@ cc_prebuilt_library_headers { func TestPrebuiltCcLibraryHeadersPreferredRdepUpdated(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers prebuilt preferred is used as rdep", - StubbedBuildDefinitions: []string{"foo_export"}, + StubbedBuildDefinitions: []string{"foo_export", "//foo/bar:foo_headers"}, Filesystem: map[string]string{ "foo/bar/Android.bp": simpleModule("cc_library_headers", "foo_headers"), }, @@ -458,7 +456,7 @@ cc_library_shared { func TestPrebuiltCcLibraryHeadersRdepUpdated(t *testing.T) { runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ Description: "cc_library_headers not preferred is not used for rdep", - StubbedBuildDefinitions: []string{"foo_export"}, + StubbedBuildDefinitions: []string{"foo_export", "//foo/bar:foo_headers"}, Filesystem: map[string]string{ "foo/bar/Android.bp": simpleModule("cc_library_headers", "foo_headers"), }, diff --git a/bp2build/gensrcs_conversion_test.go b/bp2build/gensrcs_conversion_test.go index e808340fa..e9fc61d43 100644 --- a/bp2build/gensrcs_conversion_test.go +++ b/bp2build/gensrcs_conversion_test.go @@ -15,16 +15,22 @@ package bp2build import ( + "testing" + "android/soong/android" "android/soong/genrule" - "testing" ) +func registerModulesForGensrcsTests(ctx android.RegistrationContext) { + ctx.RegisterModuleType("filegroup", android.FileGroupFactory) +} + func TestGensrcs(t *testing.T) { testcases := []struct { - name string - bp string - expectedBazelAttrs AttrNameToString + name string + bp string + expectedBazelAttrs AttrNameToString + stubbedBuildDefinitions []string }{ { name: "gensrcs with common usage of properties", @@ -37,18 +43,22 @@ func TestGensrcs(t *testing.T) { data: ["foo/file.txt", ":external_files"], output_extension: "out", bazel_module: { bp2build_available: true }, + } + filegroup { + name: "external_files", }`, + stubbedBuildDefinitions: []string{"external_files"}, expectedBazelAttrs: AttrNameToString{ "srcs": `[ "test/input.txt", - ":external_files__BP2BUILD__MISSING__DEP", + ":external_files", ]`, "tools": `["program.py"]`, "output_extension": `"out"`, - "cmd": `"$(location program.py) $(SRC) $(OUT) $(location foo/file.txt) $(location :external_files__BP2BUILD__MISSING__DEP)"`, + "cmd": `"$(location program.py) $(SRC) $(OUT) $(location foo/file.txt) $(location :external_files)"`, "data": `[ "foo/file.txt", - ":external_files__BP2BUILD__MISSING__DEP", + ":external_files", ]`, }, }, @@ -73,12 +83,13 @@ func TestGensrcs(t *testing.T) { MakeBazelTargetNoRestrictions("gensrcs", "foo", test.expectedBazelAttrs), } t.Run(test.name, func(t *testing.T) { - RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + RunBp2BuildTestCase(t, registerModulesForGensrcsTests, Bp2buildTestCase{ ModuleTypeUnderTest: "gensrcs", ModuleTypeUnderTestFactory: genrule.GenSrcsFactory, Blueprint: test.bp, ExpectedBazelTargets: expectedBazelTargets, + StubbedBuildDefinitions: test.stubbedBuildDefinitions, }) }) } diff --git a/bp2build/java_library_conversion_test.go b/bp2build/java_library_conversion_test.go index 38571d4cc..426dffa2b 100644 --- a/bp2build/java_library_conversion_test.go +++ b/bp2build/java_library_conversion_test.go @@ -635,7 +635,7 @@ func TestJavaLibraryAidlNonAdjacentAidlFilegroup(t *testing.T) { Description: "java_library with non adjacent aidl filegroup", ModuleTypeUnderTest: "java_library", ModuleTypeUnderTestFactory: java.LibraryFactory, - StubbedBuildDefinitions: []string{"A_aidl"}, + StubbedBuildDefinitions: []string{"//path/to/A:A_aidl"}, Filesystem: map[string]string{ "path/to/A/Android.bp": ` filegroup {