From 3177a6e1e0b79d321cb65f81ecfca44c4bf06c56 Mon Sep 17 00:00:00 2001 From: Sam Delmerico Date: Tue, 21 Jun 2022 19:28:33 +0000 Subject: [PATCH] export common bp2build testing functions bp2buildTestCase attrNameToString runBp2BuildTestCase makeBazelTargetNoRestrictions The testing framework defined in the bp2build package can only be used from within the package because many common testing functions are private to the package. This prevents modules defined in Soong plugins (e.g. system/tools/aidl/build) from testing bp2build conversions. Test: go test ./bp2build Change-Id: Ia867081327c5181d04687b13c4550e68e6a11f86 --- bazel/properties.go | 4 + ...android_app_certificate_conversion_test.go | 20 +- bp2build/android_app_conversion_test.go | 52 +- bp2build/apex_conversion_test.go | 340 ++++---- bp2build/apex_key_conversion_test.go | 18 +- bp2build/build_conversion_test.go | 526 ++++++------ bp2build/cc_binary_conversion_test.go | 86 +- bp2build/cc_library_conversion_test.go | 788 +++++++++--------- .../cc_library_headers_conversion_test.go | 132 +-- bp2build/cc_library_shared_conversion_test.go | 210 ++--- bp2build/cc_library_static_conversion_test.go | 450 +++++----- bp2build/cc_object_conversion_test.go | 118 +-- .../cc_prebuilt_library_conversion_test.go | 100 +-- bp2build/cc_prebuilt_library_shared_test.go | 46 +- bp2build/cc_prebuilt_library_static_test.go | 66 +- bp2build/filegroup_conversion_test.go | 28 +- bp2build/genrule_conversion_test.go | 152 ++-- bp2build/gensrcs_conversion_test.go | 20 +- bp2build/java_binary_host_conversion_test.go | 32 +- bp2build/java_import_conversion_test.go | 36 +- bp2build/java_library_conversion_test.go | 152 ++-- bp2build/java_library_host_conversion_test.go | 20 +- bp2build/java_plugin_conversion_test.go | 28 +- bp2build/java_proto_conversion_test.go | 36 +- bp2build/linker_config_conversion_test.go | 20 +- bp2build/prebuilt_etc_conversion_test.go | 76 +- bp2build/python_binary_conversion_test.go | 64 +- bp2build/python_library_conversion_test.go | 62 +- bp2build/sh_conversion_test.go | 32 +- ...oong_config_module_type_conversion_test.go | 188 ++--- bp2build/testing.go | 74 +- 31 files changed, 1990 insertions(+), 1986 deletions(-) diff --git a/bazel/properties.go b/bazel/properties.go index e29b9e137..aba97c647 100644 --- a/bazel/properties.go +++ b/bazel/properties.go @@ -94,6 +94,10 @@ func (ll *LabelList) IsNil() bool { return ll.Includes == nil && ll.Excludes == nil } +func (ll *LabelList) IsEmpty() bool { + return len(ll.Includes) == 0 && len(ll.Excludes) == 0 +} + func (ll *LabelList) deepCopy() LabelList { return LabelList{ Includes: ll.Includes[:], diff --git a/bp2build/android_app_certificate_conversion_test.go b/bp2build/android_app_certificate_conversion_test.go index 173b4e485..01045134c 100644 --- a/bp2build/android_app_certificate_conversion_test.go +++ b/bp2build/android_app_certificate_conversion_test.go @@ -21,28 +21,28 @@ import ( "testing" ) -func runAndroidAppCertificateTestCase(t *testing.T, tc bp2buildTestCase) { +func runAndroidAppCertificateTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerAndroidAppCertificateModuleTypes, tc) + RunBp2BuildTestCase(t, registerAndroidAppCertificateModuleTypes, tc) } func registerAndroidAppCertificateModuleTypes(ctx android.RegistrationContext) { } func TestAndroidAppCertificateSimple(t *testing.T) { - runAndroidAppCertificateTestCase(t, bp2buildTestCase{ - description: "Android app certificate - simple example", - moduleTypeUnderTest: "android_app_certificate", - moduleTypeUnderTestFactory: java.AndroidAppCertificateFactory, - filesystem: map[string]string{}, - blueprint: ` + runAndroidAppCertificateTestCase(t, Bp2buildTestCase{ + Description: "Android app certificate - simple example", + ModuleTypeUnderTest: "android_app_certificate", + ModuleTypeUnderTestFactory: java.AndroidAppCertificateFactory, + Filesystem: map[string]string{}, + Blueprint: ` android_app_certificate { name: "com.android.apogee.cert", certificate: "chamber_of_secrets_dir", } `, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("android_app_certificate", "com.android.apogee.cert", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("android_app_certificate", "com.android.apogee.cert", AttrNameToString{ "certificate": `"chamber_of_secrets_dir"`, }), }}) diff --git a/bp2build/android_app_conversion_test.go b/bp2build/android_app_conversion_test.go index a216c9d11..a37af12bd 100644 --- a/bp2build/android_app_conversion_test.go +++ b/bp2build/android_app_conversion_test.go @@ -21,33 +21,33 @@ import ( "testing" ) -func runAndroidAppTestCase(t *testing.T, tc bp2buildTestCase) { +func runAndroidAppTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerAndroidAppModuleTypes, tc) + RunBp2BuildTestCase(t, registerAndroidAppModuleTypes, tc) } func registerAndroidAppModuleTypes(ctx android.RegistrationContext) { } func TestMinimalAndroidApp(t *testing.T) { - runAndroidAppTestCase(t, bp2buildTestCase{ - description: "Android app - simple example", - moduleTypeUnderTest: "android_app", - moduleTypeUnderTestFactory: java.AndroidAppFactory, - filesystem: map[string]string{ + runAndroidAppTestCase(t, Bp2buildTestCase{ + Description: "Android app - simple example", + ModuleTypeUnderTest: "android_app", + ModuleTypeUnderTestFactory: java.AndroidAppFactory, + Filesystem: map[string]string{ "app.java": "", "res/res.png": "", "AndroidManifest.xml": "", }, - blueprint: ` + Blueprint: ` android_app { name: "TestApp", srcs: ["app.java"], sdk_version: "current", } `, - expectedBazelTargets: []string{ - makeBazelTarget("android_binary", "TestApp", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("android_binary", "TestApp", AttrNameToString{ "srcs": `["app.java"]`, "manifest": `"AndroidManifest.xml"`, "resource_files": `["res/res.png"]`, @@ -56,17 +56,17 @@ android_app { } func TestAndroidAppAllSupportedFields(t *testing.T) { - runAndroidAppTestCase(t, bp2buildTestCase{ - description: "Android app - all supported fields", - moduleTypeUnderTest: "android_app", - moduleTypeUnderTestFactory: java.AndroidAppFactory, - filesystem: map[string]string{ + runAndroidAppTestCase(t, Bp2buildTestCase{ + Description: "Android app - all supported fields", + ModuleTypeUnderTest: "android_app", + ModuleTypeUnderTestFactory: java.AndroidAppFactory, + Filesystem: map[string]string{ "app.java": "", "resa/res.png": "", "resb/res.png": "", "manifest/AndroidManifest.xml": "", }, - blueprint: simpleModuleDoNotConvertBp2build("android_app", "static_lib_dep") + ` + Blueprint: simpleModuleDoNotConvertBp2build("android_app", "static_lib_dep") + ` android_app { name: "TestApp", srcs: ["app.java"], @@ -78,8 +78,8 @@ android_app { java_version: "7", } `, - expectedBazelTargets: []string{ - makeBazelTarget("android_binary", "TestApp", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("android_binary", "TestApp", AttrNameToString{ "srcs": `["app.java"]`, "manifest": `"manifest/AndroidManifest.xml"`, "resource_files": `[ @@ -94,17 +94,17 @@ android_app { } func TestAndroidAppArchVariantSrcs(t *testing.T) { - runAndroidAppTestCase(t, bp2buildTestCase{ - description: "Android app - arch variant srcs", - moduleTypeUnderTest: "android_app", - moduleTypeUnderTestFactory: java.AndroidAppFactory, - filesystem: map[string]string{ + runAndroidAppTestCase(t, Bp2buildTestCase{ + Description: "Android app - arch variant srcs", + ModuleTypeUnderTest: "android_app", + ModuleTypeUnderTestFactory: java.AndroidAppFactory, + Filesystem: map[string]string{ "arm.java": "", "x86.java": "", "res/res.png": "", "AndroidManifest.xml": "", }, - blueprint: ` + Blueprint: ` android_app { name: "TestApp", sdk_version: "current", @@ -118,8 +118,8 @@ android_app { } } `, - expectedBazelTargets: []string{ - makeBazelTarget("android_binary", "TestApp", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("android_binary", "TestApp", AttrNameToString{ "srcs": `select({ "//build/bazel/platforms/arch:arm": ["arm.java"], "//build/bazel/platforms/arch:x86": ["x86.java"], diff --git a/bp2build/apex_conversion_test.go b/bp2build/apex_conversion_test.go index 7bc379fac..415e69558 100644 --- a/bp2build/apex_conversion_test.go +++ b/bp2build/apex_conversion_test.go @@ -25,9 +25,9 @@ import ( "testing" ) -func runApexTestCase(t *testing.T, tc bp2buildTestCase) { +func runApexTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerApexModuleTypes, tc) + RunBp2BuildTestCase(t, registerApexModuleTypes, tc) } func registerApexModuleTypes(ctx android.RegistrationContext) { @@ -43,9 +43,9 @@ func registerApexModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("prebuilt_etc", etc.PrebuiltEtcFactory) } -func runOverrideApexTestCase(t *testing.T, tc bp2buildTestCase) { +func runOverrideApexTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerOverrideApexModuleTypes, tc) + RunBp2BuildTestCase(t, registerOverrideApexModuleTypes, tc) } func registerOverrideApexModuleTypes(ctx android.RegistrationContext) { @@ -63,12 +63,12 @@ func registerOverrideApexModuleTypes(ctx android.RegistrationContext) { } func TestApexBundleSimple(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - example with all props, file_context is a module in same Android.bp", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{}, - blueprint: ` + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - example with all props, file_context is a module in same Android.bp", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{}, + Blueprint: ` apex_key { name: "com.android.apogee.key", public_key: "com.android.apogee.avbpubkey", @@ -140,8 +140,8 @@ apex { logging_parent: "logging.parent", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "android_manifest": `"ApogeeAndroidManifest.xml"`, "binaries": `[ ":cc_binary_1", @@ -181,11 +181,11 @@ apex { } func TestApexBundleSimple_fileContextsInAnotherAndroidBp(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - file contexts is a module in another Android.bp", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - file contexts is a module in another Android.bp", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "a/b/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -196,14 +196,14 @@ filegroup { } `, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", file_contexts: ":com.android.apogee-file_contexts", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "file_contexts": `"//a/b:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, }), @@ -211,19 +211,19 @@ apex { } func TestApexBundleSimple_fileContextsIsFile(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - file contexts is a file", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{}, - blueprint: ` + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - file contexts is a file", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{}, + Blueprint: ` apex { name: "com.android.apogee", file_contexts: "file_contexts_file", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "file_contexts": `"file_contexts_file"`, "manifest": `"apex_manifest.json"`, }), @@ -231,11 +231,11 @@ apex { } func TestApexBundleSimple_fileContextsIsNotSpecified(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - file contexts is not specified", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - file contexts is not specified", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -246,13 +246,13 @@ filegroup { } `, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, }), @@ -260,11 +260,11 @@ apex { } func TestApexBundleCompileMultilibBoth(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - example with compile_multilib=both", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - example with compile_multilib=both", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -273,9 +273,9 @@ filegroup { } `, }, - blueprint: createMultilibBlueprint("both"), - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + Blueprint: createMultilibBlueprint("both"), + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "native_shared_libs_32": `[ ":native_shared_lib_1", ":native_shared_lib_3", @@ -304,11 +304,11 @@ filegroup { } func TestApexBundleCompileMultilibFirst(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - example with compile_multilib=first", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - example with compile_multilib=first", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -317,9 +317,9 @@ filegroup { } `, }, - blueprint: createMultilibBlueprint("first"), - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + Blueprint: createMultilibBlueprint("first"), + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "native_shared_libs_32": `select({ "//build/bazel/platforms/arch:arm": [ ":native_shared_lib_1", @@ -353,11 +353,11 @@ filegroup { } func TestApexBundleCompileMultilib32(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - example with compile_multilib=32", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - example with compile_multilib=32", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -366,9 +366,9 @@ filegroup { } `, }, - blueprint: createMultilibBlueprint("32"), - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + Blueprint: createMultilibBlueprint("32"), + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "native_shared_libs_32": `[ ":native_shared_lib_1", ":native_shared_lib_3", @@ -384,11 +384,11 @@ filegroup { } func TestApexBundleCompileMultilib64(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - example with compile_multilib=64", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - example with compile_multilib=64", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -397,9 +397,9 @@ filegroup { } `, }, - blueprint: createMultilibBlueprint("64"), - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + Blueprint: createMultilibBlueprint("64"), + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "native_shared_libs_64": `select({ "//build/bazel/platforms/arch:arm64": [ ":native_shared_lib_1", @@ -420,11 +420,11 @@ filegroup { } func TestApexBundleDefaultPropertyValues(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - default property values", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - default property values", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -433,13 +433,13 @@ filegroup { } `, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", manifest: "apogee_manifest.json", } `, - expectedBazelTargets: []string{makeBazelTarget("apex", "com.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("apex", "com.android.apogee", AttrNameToString{ "manifest": `"apogee_manifest.json"`, "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, }), @@ -447,11 +447,11 @@ apex { } func TestApexBundleHasBazelModuleProps(t *testing.T) { - runApexTestCase(t, bp2buildTestCase{ - description: "apex - has bazel module props", - moduleTypeUnderTest: "apex", - moduleTypeUnderTestFactory: apex.BundleFactory, - filesystem: map[string]string{ + runApexTestCase(t, Bp2buildTestCase{ + Description: "apex - has bazel module props", + ModuleTypeUnderTest: "apex", + ModuleTypeUnderTestFactory: apex.BundleFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "apogee-file_contexts", @@ -460,14 +460,14 @@ filegroup { } `, }, - blueprint: ` + Blueprint: ` apex { name: "apogee", manifest: "manifest.json", bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{makeBazelTarget("apex", "apogee", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("apex", "apogee", AttrNameToString{ "manifest": `"manifest.json"`, "file_contexts": `"//system/sepolicy/apex:apogee-file_contexts"`, }), @@ -525,12 +525,12 @@ apex { } func TestBp2BuildOverrideApex(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{}, - blueprint: ` + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{}, + Blueprint: ` apex_key { name: "com.android.apogee.key", public_key: "com.android.apogee.avbpubkey", @@ -623,8 +623,8 @@ override_apex { compressible: true, } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "android_manifest": `"ApogeeAndroidManifest.xml"`, "binaries": `[ ":cc_binary_1", @@ -659,11 +659,11 @@ override_apex { } func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInDifferentAndroidBp(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - manifest of base apex is empty, base apex and override_apex is in different Android.bp", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - manifest of base apex is empty, base apex and override_apex is in different Android.bp", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -677,14 +677,14 @@ apex { } `, }, - blueprint: ` + Blueprint: ` override_apex { name: "com.google.android.apogee", base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"//a/b:apex_manifest.json"`, }), @@ -692,11 +692,11 @@ override_apex { } func TestApexBundleSimple_manifestIsSet_baseApexOverrideApexInDifferentAndroidBp(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - manifest of base apex is set, base apex and override_apex is in different Android.bp", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - manifest of base apex is set, base apex and override_apex is in different Android.bp", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -711,14 +711,14 @@ apex { } `, }, - blueprint: ` + Blueprint: ` override_apex { name: "com.google.android.apogee", base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"//a/b:apogee_manifest.json"`, }), @@ -726,11 +726,11 @@ override_apex { } func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInSameAndroidBp(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - manifest of base apex is empty, base apex and override_apex is in same Android.bp", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - manifest of base apex is empty, base apex and override_apex is in same Android.bp", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -738,7 +738,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", bazel_module: { bp2build_available: false }, @@ -749,8 +749,8 @@ override_apex { base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, }), @@ -758,11 +758,11 @@ override_apex { } func TestApexBundleSimple_manifestIsSet_baseApexOverrideApexInSameAndroidBp(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - manifest of base apex is set, base apex and override_apex is in same Android.bp", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - manifest of base apex is set, base apex and override_apex is in same Android.bp", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -770,7 +770,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", manifest: "apogee_manifest.json", @@ -782,8 +782,8 @@ override_apex { base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apogee_manifest.json"`, }), @@ -791,11 +791,11 @@ override_apex { } func TestApexBundleSimple_packageNameOverride(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - override package name", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - override package name", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -803,7 +803,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", bazel_module: { bp2build_available: false }, @@ -815,8 +815,8 @@ override_apex { package_name: "com.google.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "package_name": `"com.google.android.apogee"`, @@ -825,11 +825,11 @@ override_apex { } func TestApexBundleSimple_NoPrebuiltsOverride(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - no override", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - no override", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -837,7 +837,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` prebuilt_etc { name: "prebuilt_file", bazel_module: { bp2build_available: false }, @@ -854,8 +854,8 @@ override_apex { base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "prebuilts": `[":prebuilt_file"]`, @@ -864,11 +864,11 @@ override_apex { } func TestApexBundleSimple_PrebuiltsOverride(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - ooverride", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - ooverride", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -876,7 +876,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` prebuilt_etc { name: "prebuilt_file", bazel_module: { bp2build_available: false }, @@ -899,8 +899,8 @@ override_apex { prebuilts: ["prebuilt_file2"] } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "prebuilts": `[":prebuilt_file2"]`, @@ -909,11 +909,11 @@ override_apex { } func TestApexBundleSimple_PrebuiltsOverrideEmptyList(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - override with empty list", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - override with empty list", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -921,7 +921,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` prebuilt_etc { name: "prebuilt_file", bazel_module: { bp2build_available: false }, @@ -939,8 +939,8 @@ override_apex { prebuilts: [], } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "prebuilts": `[]`, @@ -949,11 +949,11 @@ override_apex { } func TestApexBundleSimple_NoLoggingParentOverride(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - logging_parent - no override", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - logging_parent - no override", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -961,7 +961,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", bazel_module: { bp2build_available: false }, @@ -973,8 +973,8 @@ override_apex { base: ":com.android.apogee", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "logging_parent": `"foo.bar.baz"`, @@ -983,11 +983,11 @@ override_apex { } func TestApexBundleSimple_LoggingParentOverride(t *testing.T) { - runOverrideApexTestCase(t, bp2buildTestCase{ - description: "override_apex - logging_parent - override", - moduleTypeUnderTest: "override_apex", - moduleTypeUnderTestFactory: apex.OverrideApexFactory, - filesystem: map[string]string{ + runOverrideApexTestCase(t, Bp2buildTestCase{ + Description: "override_apex - logging_parent - override", + ModuleTypeUnderTest: "override_apex", + ModuleTypeUnderTestFactory: apex.OverrideApexFactory, + Filesystem: map[string]string{ "system/sepolicy/apex/Android.bp": ` filegroup { name: "com.android.apogee-file_contexts", @@ -995,7 +995,7 @@ filegroup { bazel_module: { bp2build_available: false }, }`, }, - blueprint: ` + Blueprint: ` apex { name: "com.android.apogee", bazel_module: { bp2build_available: false }, @@ -1008,8 +1008,8 @@ override_apex { logging_parent: "foo.bar.baz.override", } `, - expectedBazelTargets: []string{ - makeBazelTarget("apex", "com.google.android.apogee", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("apex", "com.google.android.apogee", AttrNameToString{ "file_contexts": `"//system/sepolicy/apex:com.android.apogee-file_contexts"`, "manifest": `"apex_manifest.json"`, "logging_parent": `"foo.bar.baz.override"`, diff --git a/bp2build/apex_key_conversion_test.go b/bp2build/apex_key_conversion_test.go index dfa96a290..15bccf742 100644 --- a/bp2build/apex_key_conversion_test.go +++ b/bp2build/apex_key_conversion_test.go @@ -21,28 +21,28 @@ import ( "testing" ) -func runApexKeyTestCase(t *testing.T, tc bp2buildTestCase) { +func runApexKeyTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerApexKeyModuleTypes, tc) + RunBp2BuildTestCase(t, registerApexKeyModuleTypes, tc) } func registerApexKeyModuleTypes(ctx android.RegistrationContext) { } func TestApexKeySimple(t *testing.T) { - runApexKeyTestCase(t, bp2buildTestCase{ - description: "apex key - simple example", - moduleTypeUnderTest: "apex_key", - moduleTypeUnderTestFactory: apex.ApexKeyFactory, - filesystem: map[string]string{}, - blueprint: ` + runApexKeyTestCase(t, Bp2buildTestCase{ + Description: "apex key - simple example", + ModuleTypeUnderTest: "apex_key", + ModuleTypeUnderTestFactory: apex.ApexKeyFactory, + Filesystem: map[string]string{}, + Blueprint: ` apex_key { name: "com.android.apogee.key", public_key: "com.android.apogee.avbpubkey", private_key: "com.android.apogee.pem", } `, - expectedBazelTargets: []string{makeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", attrNameToString{ + ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{ "private_key": `"com.android.apogee.pem"`, "public_key": `"com.android.apogee.avbpubkey"`, }), diff --git a/bp2build/build_conversion_test.go b/bp2build/build_conversion_test.go index 19209f634..d36d2a90a 100644 --- a/bp2build/build_conversion_test.go +++ b/bp2build/build_conversion_test.go @@ -229,30 +229,30 @@ func TestGenerateSoongModuleTargets(t *testing.T) { } func TestGenerateBazelTargetModules(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "string ptr props", - blueprint: `custom { + Description: "string ptr props", + Blueprint: `custom { name: "foo", string_ptr_prop: "", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "foo", AttrNameToString{ "string_ptr_prop": `""`, }), }, }, { - description: "string props", - blueprint: `custom { + Description: "string props", + Blueprint: `custom { name: "foo", string_list_prop: ["a", "b"], string_ptr_prop: "a", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "foo", AttrNameToString{ "string_list_prop": `[ "a", "b", @@ -262,15 +262,15 @@ func TestGenerateBazelTargetModules(t *testing.T) { }, }, { - description: "control characters", - blueprint: `custom { + Description: "control characters", + Blueprint: `custom { name: "foo", string_list_prop: ["\t", "\n"], string_ptr_prop: "a\t\n\r", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "foo", AttrNameToString{ "string_list_prop": `[ "\t", "\n", @@ -280,8 +280,8 @@ func TestGenerateBazelTargetModules(t *testing.T) { }, }, { - description: "handles dep", - blueprint: `custom { + Description: "handles dep", + Blueprint: `custom { name: "has_dep", arch_paths: [":dep"], bazel_module: { bp2build_available: true }, @@ -292,31 +292,31 @@ custom { arch_paths: ["abc"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "dep", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "dep", AttrNameToString{ "arch_paths": `["abc"]`, }), - makeBazelTarget("custom", "has_dep", attrNameToString{ + makeBazelTarget("custom", "has_dep", AttrNameToString{ "arch_paths": `[":dep"]`, }), }, }, { - description: "non-existent dep", - blueprint: `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{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "has_dep", AttrNameToString{ "arch_paths": `[":dep__BP2BUILD__MISSING__DEP"]`, }), }, }, { - description: "arch-variant srcs", - blueprint: `custom { + Description: "arch-variant srcs", + Blueprint: `custom { name: "arch_paths", arch: { x86: { arch_paths: ["x86.txt"] }, @@ -344,8 +344,8 @@ custom { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "arch_paths", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "arch_paths", AttrNameToString{ "arch_paths": `select({ "//build/bazel/platforms/arch:arm": [ "arm.txt", @@ -406,8 +406,8 @@ custom { }, }, { - description: "arch-variant deps", - blueprint: `custom { + Description: "arch-variant deps", + Blueprint: `custom { name: "has_dep", arch: { x86: { @@ -422,11 +422,11 @@ custom { arch_paths: ["abc"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "dep", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "dep", AttrNameToString{ "arch_paths": `["abc"]`, }), - makeBazelTarget("custom", "has_dep", attrNameToString{ + makeBazelTarget("custom", "has_dep", AttrNameToString{ "arch_paths": `select({ "//build/bazel/platforms/arch:x86": [":dep"], "//conditions:default": [], @@ -435,27 +435,27 @@ custom { }, }, { - description: "embedded props", - blueprint: `custom { + Description: "embedded props", + Blueprint: `custom { name: "embedded_props", embedded_prop: "abc", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "embedded_props", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "embedded_props", AttrNameToString{ "embedded_attr": `"abc"`, }), }, }, { - description: "ptr to embedded props", - blueprint: `custom { + Description: "ptr to embedded props", + Blueprint: `custom { name: "ptr_to_embedded_props", other_embedded_prop: "abc", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("custom", "ptr_to_embedded_props", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("custom", "ptr_to_embedded_props", AttrNameToString{ "other_embedded_attr": `"abc"`, }), }, @@ -464,8 +464,8 @@ custom { dir := "." for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { - config := android.TestConfig(buildDir, nil, testCase.blueprint, nil) + t.Run(testCase.Description, func(t *testing.T) { + config := android.TestConfig(buildDir, nil, testCase.Blueprint, nil) ctx := android.NewTestContext(config) registerCustomModuleForBp2buildConversion(ctx) @@ -483,10 +483,10 @@ custom { bazelTargets, err := generateBazelTargetsForDir(codegenCtx, dir) android.FailIfErrored(t, err) - if actualCount, expectedCount := len(bazelTargets), len(testCase.expectedBazelTargets); actualCount != expectedCount { - t.Errorf("Expected %d bazel target (%s),\ngot %d (%s)", expectedCount, testCase.expectedBazelTargets, actualCount, bazelTargets) + if actualCount, expectedCount := len(bazelTargets), len(testCase.ExpectedBazelTargets); actualCount != expectedCount { + t.Errorf("Expected %d bazel target (%s),\ngot %d (%s)", expectedCount, testCase.ExpectedBazelTargets, actualCount, bazelTargets) } else { - for i, expectedBazelTarget := range testCase.expectedBazelTargets { + for i, expectedBazelTarget := range testCase.ExpectedBazelTargets { actualBazelTarget := bazelTargets[i] if actualBazelTarget.content != expectedBazelTarget { t.Errorf( @@ -502,83 +502,83 @@ custom { } func TestBp2buildHostAndDevice(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "host and device, device only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, device only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.DeviceSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.DeviceSupported), }, }, { - description: "host and device, both", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, both", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: true, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{}), }, }, { - description: "host and device, host explicitly disabled", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, host explicitly disabled", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.DeviceSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.DeviceSupported), }, }, { - description: "host and device, neither", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, neither", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: false, device_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{ "target_compatible_with": `["@platforms//:incompatible"]`, }), }, }, { - description: "host and device, neither, cannot override with product_var", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, neither, cannot override with product_var", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: false, device_supported: false, product_variables: { unbundled_build: { enabled: true } }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{ "target_compatible_with": `["@platforms//:incompatible"]`, }), }, }, { - description: "host and device, both, disabled overrided with product_var", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, both, disabled overrided with product_var", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: true, device_supported: true, @@ -586,117 +586,117 @@ func TestBp2buildHostAndDevice(t *testing.T) { product_variables: { unbundled_build: { enabled: true } }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{ "target_compatible_with": `["//build/bazel/product_variables:unbundled_build"]`, }), }, }, { - description: "host and device, neither, cannot override with arch enabled", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, neither, cannot override with arch enabled", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: false, device_supported: false, arch: { x86: { enabled: true } }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{ "target_compatible_with": `["@platforms//:incompatible"]`, }), }, }, { - description: "host and device, host only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDevice, - blueprint: `custom { + Description: "host and device, host only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDevice, + Blueprint: `custom { name: "foo", host_supported: true, device_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.HostSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.HostSupported), }, }, { - description: "host only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostSupported, - blueprint: `custom { + Description: "host only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostSupported, + Blueprint: `custom { name: "foo", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.HostSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.HostSupported), }, }, { - description: "device only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryDeviceSupported, - blueprint: `custom { + Description: "device only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryDeviceSupported, + Blueprint: `custom { name: "foo", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.DeviceSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.DeviceSupported), }, }, { - description: "host and device default, default", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, - blueprint: `custom { + Description: "host and device default, default", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, + Blueprint: `custom { name: "foo", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{}), }, }, { - description: "host and device default, device only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, - blueprint: `custom { + Description: "host and device default, device only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, + Blueprint: `custom { name: "foo", host_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.DeviceSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.DeviceSupported), }, }, { - description: "host and device default, host only", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, - blueprint: `custom { + Description: "host and device default, host only", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, + Blueprint: `custom { name: "foo", device_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetHostOrDevice("custom", "foo", attrNameToString{}, android.HostSupported), + ExpectedBazelTargets: []string{ + makeBazelTargetHostOrDevice("custom", "foo", AttrNameToString{}, android.HostSupported), }, }, { - description: "host and device default, neither", - moduleTypeUnderTest: "custom", - moduleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, - blueprint: `custom { + Description: "host and device default, neither", + ModuleTypeUnderTest: "custom", + ModuleTypeUnderTestFactory: customModuleFactoryHostAndDeviceDefault, + Blueprint: `custom { name: "foo", host_supported: false, device_supported: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("custom", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("custom", "foo", AttrNameToString{ "target_compatible_with": `["@platforms//:incompatible"]`, }), }, @@ -704,7 +704,7 @@ func TestBp2buildHostAndDevice(t *testing.T) { } for _, tc := range testCases { - t.Run(tc.description, func(t *testing.T) { + t.Run(tc.Description, func(t *testing.T) { runBp2BuildTestCaseSimple(t, tc) }) } @@ -880,43 +880,43 @@ load("//build/bazel/rules:rules.bzl", "my_library")`, } func TestModuleTypeBp2Build(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "filegroup with does not specify srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup with does not specify srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), }, }, { - description: "filegroup with no srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup with no srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: [], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), }, }, { - description: "filegroup with srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup with srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: ["a", "b"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "a", "b", @@ -925,32 +925,32 @@ func TestModuleTypeBp2Build(t *testing.T) { }, }, { - description: "filegroup with excludes srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup with excludes srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: ["a", "b"], exclude_srcs: ["a"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `["b"]`, }), }, }, { - description: "filegroup with glob", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup with glob", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: ["**/*.txt"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "other/a.txt", "other/b.txt", @@ -958,7 +958,7 @@ func TestModuleTypeBp2Build(t *testing.T) { ]`, }), }, - filesystem: map[string]string{ + Filesystem: map[string]string{ "other/a.txt": "", "other/b.txt": "", "other/subdir/a.txt": "", @@ -966,11 +966,11 @@ func TestModuleTypeBp2Build(t *testing.T) { }, }, { - description: "filegroup with glob in subdir", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - dir: "other", - filesystem: map[string]string{ + Description: "filegroup with glob in subdir", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Dir: "other", + Filesystem: map[string]string{ "other/Android.bp": `filegroup { name: "fg_foo", srcs: ["**/*.txt"], @@ -981,8 +981,8 @@ func TestModuleTypeBp2Build(t *testing.T) { "other/subdir/a.txt": "", "other/file": "", }, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "a.txt", "b.txt", @@ -992,10 +992,10 @@ func TestModuleTypeBp2Build(t *testing.T) { }, }, { - description: "depends_on_other_dir_module", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "depends_on_other_dir_module", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: [ ":foo", @@ -1003,15 +1003,15 @@ func TestModuleTypeBp2Build(t *testing.T) { ], bazel_module: { bp2build_available: true }, }`, - filesystem: map[string]string{ + Filesystem: map[string]string{ "other/Android.bp": `filegroup { name: "foo", srcs: ["a", "b"], bazel_module: { bp2build_available: true }, }`, }, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "//other:foo", "c", @@ -1020,11 +1020,11 @@ func TestModuleTypeBp2Build(t *testing.T) { }, }, { - description: "depends_on_other_unconverted_module_error", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - unconvertedDepsMode: errorModulesUnconvertedDeps, - blueprint: `filegroup { + Description: "depends_on_other_unconverted_module_error", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + UnconvertedDepsMode: errorModulesUnconvertedDeps, + Blueprint: `filegroup { name: "foobar", srcs: [ ":foo", @@ -1032,8 +1032,8 @@ func TestModuleTypeBp2Build(t *testing.T) { ], bazel_module: { bp2build_available: true }, }`, - expectedErr: fmt.Errorf(`"foobar" depends on unconverted modules: foo`), - filesystem: map[string]string{ + ExpectedErr: fmt.Errorf(`"foobar" depends on unconverted modules: foo`), + Filesystem: map[string]string{ "other/Android.bp": `filegroup { name: "foo", srcs: ["a", "b"], @@ -1043,8 +1043,8 @@ func TestModuleTypeBp2Build(t *testing.T) { } for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, testCase) + t.Run(testCase.Description, func(t *testing.T) { + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, testCase) }) } } @@ -1244,27 +1244,27 @@ filegroup { name: "opt-out-h", bazel_module: { bp2build_available: false } } } func TestCombineBuildFilesBp2buildTargets(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "filegroup bazel_module.label", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup bazel_module.label", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", bazel_module: { label: "//other:fg_foo" }, }`, - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ `// BUILD file`, }, - filesystem: map[string]string{ + Filesystem: map[string]string{ "other/BUILD.bazel": `// BUILD file`, }, }, { - description: "multiple bazel_module.label same BUILD", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "multiple bazel_module.label same BUILD", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", bazel_module: { label: "//other:fg_foo" }, } @@ -1273,20 +1273,20 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { name: "foo", bazel_module: { label: "//other:foo" }, }`, - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ `// BUILD file`, }, - filesystem: map[string]string{ + Filesystem: map[string]string{ "other/BUILD.bazel": `// BUILD file`, }, }, { - description: "filegroup bazel_module.label and bp2build in subdir", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - dir: "other", - blueprint: ``, - filesystem: map[string]string{ + Description: "filegroup bazel_module.label and bp2build in subdir", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Dir: "other", + Blueprint: ``, + Filesystem: map[string]string{ "other/Android.bp": `filegroup { name: "fg_foo", bazel_module: { @@ -1301,20 +1301,20 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { }`, "other/BUILD.bazel": `// definition for fg_bar`, }, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{}), `// definition for fg_bar`, }, }, { - description: "filegroup bazel_module.label and filegroup bp2build", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, + Description: "filegroup bazel_module.label and filegroup bp2build", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, - filesystem: map[string]string{ + Filesystem: map[string]string{ "other/BUILD.bazel": `// BUILD file`, }, - blueprint: `filegroup { + Blueprint: `filegroup { name: "fg_foo", bazel_module: { label: "//other:fg_foo", @@ -1327,8 +1327,8 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { bp2build_available: true, }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_bar", map[string]string{}), + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_bar", map[string]string{}), `// BUILD file`, }, }, @@ -1336,20 +1336,20 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { dir := "." for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { + t.Run(testCase.Description, func(t *testing.T) { fs := make(map[string][]byte) toParse := []string{ "Android.bp", } - for f, content := range testCase.filesystem { + for f, content := range testCase.Filesystem { if strings.HasSuffix(f, "Android.bp") { toParse = append(toParse, f) } fs[f] = []byte(content) } - config := android.TestConfig(buildDir, nil, testCase.blueprint, fs) + config := android.TestConfig(buildDir, nil, testCase.Blueprint, fs) ctx := android.NewTestContext(config) - ctx.RegisterModuleType(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestFactory) + ctx.RegisterModuleType(testCase.ModuleTypeUnderTest, testCase.ModuleTypeUnderTestFactory) ctx.RegisterForBazelConversion() _, errs := ctx.ParseFileList(dir, toParse) @@ -1362,15 +1362,15 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { } checkDir := dir - if testCase.dir != "" { - checkDir = testCase.dir + if testCase.Dir != "" { + checkDir = testCase.Dir } codegenCtx := NewCodegenContext(config, *ctx.Context, Bp2Build) bazelTargets, err := generateBazelTargetsForDir(codegenCtx, checkDir) android.FailIfErrored(t, err) bazelTargets.sort() actualCount := len(bazelTargets) - expectedCount := len(testCase.expectedBazelTargets) + expectedCount := len(testCase.ExpectedBazelTargets) if actualCount != expectedCount { t.Errorf("Expected %d bazel target, got %d\n%s", expectedCount, actualCount, bazelTargets) } @@ -1379,7 +1379,7 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { } for i, target := range bazelTargets { actualContent := target.content - expectedContent := testCase.expectedBazelTargets[i] + expectedContent := testCase.ExpectedBazelTargets[i] if expectedContent != actualContent { t.Errorf( "Expected generated Bazel target to be '%s', got '%s'", @@ -1393,18 +1393,18 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) { } func TestGlobExcludeSrcs(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "filegroup top level exclude_srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: `filegroup { + Description: "filegroup top level exclude_srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: `filegroup { name: "fg_foo", srcs: ["**/*.txt"], exclude_srcs: ["c.txt"], bazel_module: { bp2build_available: true }, }`, - filesystem: map[string]string{ + Filesystem: map[string]string{ "a.txt": "", "b.txt": "", "c.txt": "", @@ -1412,8 +1412,8 @@ func TestGlobExcludeSrcs(t *testing.T) { "dir/e.txt": "", "dir/f.txt": "", }, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "a.txt", "b.txt", @@ -1424,12 +1424,12 @@ func TestGlobExcludeSrcs(t *testing.T) { }, }, { - description: "filegroup in subdir exclude_srcs", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: "", - dir: "dir", - filesystem: map[string]string{ + Description: "filegroup in subdir exclude_srcs", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: "", + Dir: "dir", + Filesystem: map[string]string{ "dir/Android.bp": `filegroup { name: "fg_foo", srcs: ["**/*.txt"], @@ -1443,8 +1443,8 @@ func TestGlobExcludeSrcs(t *testing.T) { "dir/subdir/e.txt": "", "dir/subdir/f.txt": "", }, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "srcs": `[ "a.txt", "//dir/subdir:e.txt", @@ -1456,35 +1456,35 @@ func TestGlobExcludeSrcs(t *testing.T) { } for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { + t.Run(testCase.Description, func(t *testing.T) { runBp2BuildTestCaseSimple(t, testCase) }) } } func TestCommonBp2BuildModuleAttrs(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "Required into data test", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: simpleModuleDoNotConvertBp2build("filegroup", "reqd") + ` + Description: "Required into data test", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "reqd") + ` filegroup { name: "fg_foo", required: ["reqd"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "data": `[":reqd"]`, }), }, }, { - description: "Required via arch into data test", - moduleTypeUnderTest: "python_library", - moduleTypeUnderTestFactory: python.PythonLibraryFactory, - blueprint: simpleModuleDoNotConvertBp2build("python_library", "reqdx86") + + Description: "Required via arch into data test", + ModuleTypeUnderTest: "python_library", + ModuleTypeUnderTestFactory: python.PythonLibraryFactory, + Blueprint: simpleModuleDoNotConvertBp2build("python_library", "reqdx86") + simpleModuleDoNotConvertBp2build("python_library", "reqdarm") + ` python_library { name: "fg_foo", @@ -1498,7 +1498,7 @@ python_library { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ makeBazelTarget("py_library", "fg_foo", map[string]string{ "data": `select({ "//build/bazel/platforms/arch:arm": [":reqdarm"], @@ -1511,21 +1511,21 @@ python_library { }, }, { - description: "Required appended to data test", - moduleTypeUnderTest: "python_library", - moduleTypeUnderTestFactory: python.PythonLibraryFactory, - filesystem: map[string]string{ + Description: "Required appended to data test", + ModuleTypeUnderTest: "python_library", + ModuleTypeUnderTestFactory: python.PythonLibraryFactory, + Filesystem: map[string]string{ "data.bin": "", "src.py": "", }, - blueprint: simpleModuleDoNotConvertBp2build("python_library", "reqd") + ` + Blueprint: simpleModuleDoNotConvertBp2build("python_library", "reqd") + ` python_library { name: "fg_foo", data: ["data.bin"], required: ["reqd"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ makeBazelTarget("py_library", "fg_foo", map[string]string{ "data": `[ "data.bin", @@ -1537,17 +1537,17 @@ python_library { }, }, { - description: "All props-to-attrs at once together test", - moduleTypeUnderTest: "filegroup", - moduleTypeUnderTestFactory: android.FileGroupFactory, - blueprint: simpleModuleDoNotConvertBp2build("filegroup", "reqd") + ` + Description: "All props-to-attrs at once together test", + ModuleTypeUnderTest: "filegroup", + ModuleTypeUnderTestFactory: android.FileGroupFactory, + Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "reqd") + ` filegroup { name: "fg_foo", required: ["reqd"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("filegroup", "fg_foo", map[string]string{ "data": `[":reqd"]`, }), }, @@ -1555,7 +1555,7 @@ filegroup { } for _, tc := range testCases { - t.Run(tc.description, func(t *testing.T) { + t.Run(tc.Description, func(t *testing.T) { runBp2BuildTestCaseSimple(t, tc) }) } diff --git a/bp2build/cc_binary_conversion_test.go b/bp2build/cc_binary_conversion_test.go index 4794269e4..95869dd87 100644 --- a/bp2build/cc_binary_conversion_test.go +++ b/bp2build/cc_binary_conversion_test.go @@ -31,7 +31,7 @@ const ( type testBazelTarget struct { typ string name string - attrs attrNameToString + attrs AttrNameToString } func generateBazelTargetsForTest(targets []testBazelTarget, hod android.HostOrDeviceSupported) []string { @@ -73,12 +73,12 @@ func runCcBinaryTestCase(t *testing.T, testCase ccBinaryBp2buildTestCase) { description := fmt.Sprintf("%s %s", moduleTypeUnderTest, testCase.description) t.Run(description, func(t *testing.T) { t.Helper() - runBp2BuildTestCase(t, registerCcBinaryModuleTypes, bp2buildTestCase{ - expectedBazelTargets: generateBazelTargetsForTest(testCase.targets, android.DeviceSupported), - moduleTypeUnderTest: moduleTypeUnderTest, - moduleTypeUnderTestFactory: cc.BinaryFactory, - description: description, - blueprint: binaryReplacer.Replace(testCase.blueprint), + RunBp2BuildTestCase(t, registerCcBinaryModuleTypes, Bp2buildTestCase{ + ExpectedBazelTargets: generateBazelTargetsForTest(testCase.targets, android.DeviceSupported), + ModuleTypeUnderTest: moduleTypeUnderTest, + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Description: description, + Blueprint: binaryReplacer.Replace(testCase.blueprint), }) }) } @@ -88,12 +88,12 @@ func runCcHostBinaryTestCase(t *testing.T, testCase ccBinaryBp2buildTestCase) { moduleTypeUnderTest := "cc_binary_host" description := fmt.Sprintf("%s %s", moduleTypeUnderTest, testCase.description) t.Run(description, func(t *testing.T) { - runBp2BuildTestCase(t, registerCcBinaryModuleTypes, bp2buildTestCase{ - expectedBazelTargets: generateBazelTargetsForTest(testCase.targets, android.HostSupported), - moduleTypeUnderTest: moduleTypeUnderTest, - moduleTypeUnderTestFactory: cc.BinaryHostFactory, - description: description, - blueprint: hostBinaryReplacer.Replace(testCase.blueprint), + RunBp2BuildTestCase(t, registerCcBinaryModuleTypes, Bp2buildTestCase{ + ExpectedBazelTargets: generateBazelTargetsForTest(testCase.targets, android.HostSupported), + ModuleTypeUnderTest: moduleTypeUnderTest, + ModuleTypeUnderTestFactory: cc.BinaryHostFactory, + Description: description, + Blueprint: hostBinaryReplacer.Replace(testCase.blueprint), }) }) } @@ -126,7 +126,7 @@ func TestBasicCcBinary(t *testing.T) { } `, targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "absolute_includes": `["absolute_dir"]`, "asflags": `["-Dasflag"]`, "conlyflags": `["-Dconlyflag"]`, @@ -166,7 +166,7 @@ func TestCcBinaryWithSharedLdflagDisableFeature(t *testing.T) { } `, targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "features": `["-static_flag"]`, "linkopts": `["-shared"]`, }, @@ -186,7 +186,7 @@ func TestCcBinaryWithLinkStatic(t *testing.T) { } `, targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "linkshared": `False`, }, }, @@ -205,7 +205,7 @@ func TestCcBinaryVersionScript(t *testing.T) { } `, targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "additional_linker_inputs": `["vs"]`, "linkopts": `["-Wl,--version-script,$(location vs)"]`, }, @@ -230,7 +230,7 @@ func TestCcBinarySplitSrcsByLang(t *testing.T) { } ` + simpleModuleDoNotConvertBp2build("filegroup", "fg_foo"), targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "srcs": `[ "cpponly.cpp", ":fg_foo_cpp_srcs", @@ -285,7 +285,7 @@ genrule { simpleModuleDoNotConvertBp2build("cc_library", "shared_dep") + simpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep"), targets: []testBazelTarget{ - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "deps": `[ ":implementation_static_dep", ":static_dep", @@ -314,21 +314,21 @@ func TestCcBinaryNocrtTests(t *testing.T) { baseTestCases := []struct { description string soongProperty string - bazelAttr attrNameToString + bazelAttr AttrNameToString }{ { description: "nocrt: true", soongProperty: `nocrt: true,`, - bazelAttr: attrNameToString{"link_crt": `False`}, + bazelAttr: AttrNameToString{"link_crt": `False`}, }, { description: "nocrt: false", soongProperty: `nocrt: false,`, - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, { description: "nocrt: not set", - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, } @@ -357,21 +357,21 @@ func TestCcBinaryNo_libcrtTests(t *testing.T) { baseTestCases := []struct { description string soongProperty string - bazelAttr attrNameToString + bazelAttr AttrNameToString }{ { description: "no_libcrt: true", soongProperty: `no_libcrt: true,`, - bazelAttr: attrNameToString{"use_libcrt": `False`}, + bazelAttr: AttrNameToString{"use_libcrt": `False`}, }, { description: "no_libcrt: false", soongProperty: `no_libcrt: false,`, - bazelAttr: attrNameToString{"use_libcrt": `True`}, + bazelAttr: AttrNameToString{"use_libcrt": `True`}, }, { description: "no_libcrt: not set", - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, } @@ -400,35 +400,35 @@ func TestCcBinaryPropertiesToFeatures(t *testing.T) { baseTestCases := []struct { description string soongProperty string - bazelAttr attrNameToString + bazelAttr AttrNameToString }{ { description: "pack_relocation: true", soongProperty: `pack_relocations: true,`, - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, { description: "pack_relocations: false", soongProperty: `pack_relocations: false,`, - bazelAttr: attrNameToString{"features": `["disable_pack_relocations"]`}, + bazelAttr: AttrNameToString{"features": `["disable_pack_relocations"]`}, }, { description: "pack_relocations: not set", - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, { description: "pack_relocation: true", soongProperty: `allow_undefined_symbols: true,`, - bazelAttr: attrNameToString{"features": `["-no_undefined_symbols"]`}, + bazelAttr: AttrNameToString{"features": `["-no_undefined_symbols"]`}, }, { description: "allow_undefined_symbols: false", soongProperty: `allow_undefined_symbols: false,`, - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, { description: "allow_undefined_symbols: not set", - bazelAttr: attrNameToString{}, + bazelAttr: AttrNameToString{}, }, } @@ -462,11 +462,11 @@ func TestCcBinarySharedProto(t *testing.T) { include_build_directory: false, }`, targets: []testBazelTarget{ - {"proto_library", "foo_proto", attrNameToString{ + {"proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }}, {"cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }}, {"cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }}, {"cc_binary", "foo", attrNameToString{ + }}, {"cc_binary", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, }}, @@ -485,11 +485,11 @@ func TestCcBinaryStaticProto(t *testing.T) { include_build_directory: false, }`, targets: []testBazelTarget{ - {"proto_library", "foo_proto", attrNameToString{ + {"proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }}, {"cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }}, {"cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }}, {"cc_binary", "foo", attrNameToString{ + }}, {"cc_binary", "foo", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, "linkshared": `False`, @@ -510,7 +510,7 @@ func TestCcBinaryConvertLex(t *testing.T) { } `, targets: []testBazelTarget{ - {"genlex", "foo_genlex_l", attrNameToString{ + {"genlex", "foo_genlex_l", AttrNameToString{ "srcs": `[ "foo1.l", "foo2.l", @@ -520,7 +520,7 @@ func TestCcBinaryConvertLex(t *testing.T) { "--bar_opt", ]`, }}, - {"genlex", "foo_genlex_ll", attrNameToString{ + {"genlex", "foo_genlex_ll", AttrNameToString{ "srcs": `[ "bar1.ll", "bar2.ll", @@ -530,7 +530,7 @@ func TestCcBinaryConvertLex(t *testing.T) { "--bar_opt", ]`, }}, - {"cc_binary", "foo", attrNameToString{ + {"cc_binary", "foo", AttrNameToString{ "srcs": `[ "bar.cc", ":foo_genlex_ll", diff --git a/bp2build/cc_library_conversion_test.go b/bp2build/cc_library_conversion_test.go index 2cc2207df..6c56d4188 100644 --- a/bp2build/cc_library_conversion_test.go +++ b/bp2build/cc_library_conversion_test.go @@ -43,9 +43,9 @@ cc_library { soongCcProtoPreamble = soongCcLibraryPreamble + soongCcProtoLibraries ) -func runCcLibraryTestCase(t *testing.T, tc bp2buildTestCase) { +func runCcLibraryTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerCcLibraryModuleTypes, tc) + RunBp2BuildTestCase(t, registerCcLibraryModuleTypes, tc) } func registerCcLibraryModuleTypes(ctx android.RegistrationContext) { @@ -57,11 +57,11 @@ func registerCcLibraryModuleTypes(ctx android.RegistrationContext) { } func TestCcLibrarySimple(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - simple example", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - simple example", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "android.cpp": "", "bionic.cpp": "", "darwin.cpp": "", @@ -81,7 +81,7 @@ func TestCcLibrarySimple(t *testing.T) { "x86_64.cpp": "", "foo-dir/a.h": "", }, - blueprint: soongCcLibraryPreamble + + Blueprint: soongCcLibraryPreamble + simpleModuleDoNotConvertBp2build("cc_library_headers", "some-headers") + ` cc_library { name: "foo-lib", @@ -120,7 +120,7 @@ cc_library { use_version_lib: true, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "copts": `["-Wall"]`, "export_includes": `["foo-dir"]`, "implementation_deps": `[":some-headers"]`, @@ -151,18 +151,18 @@ cc_library { } func TestCcLibraryTrimmedLdAndroid(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - trimmed example of //bionic/linker:ld-android", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - trimmed example of //bionic/linker:ld-android", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "ld-android.cpp": "", "linked_list.h": "", "linker.h": "", "linker_block_allocator.h": "", "linker_cfi.h": "", }, - blueprint: soongCcLibraryPreamble + + Blueprint: soongCcLibraryPreamble + simpleModuleDoNotConvertBp2build("cc_library_headers", "libc_headers") + ` cc_library { name: "fake-ld-android", @@ -193,7 +193,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("fake-ld-android", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("fake-ld-android", AttrNameToString{ "srcs": `["ld_android.cpp"]`, "copts": `[ "-Wall", @@ -219,12 +219,12 @@ cc_library { } func TestCcLibraryExcludeSrcs(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library exclude_srcs - trimmed example of //external/arm-optimized-routines:libarm-optimized-routines-math", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "external", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library exclude_srcs - trimmed example of //external/arm-optimized-routines:libarm-optimized-routines-math", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "external", + Filesystem: map[string]string{ "external/math/cosf.c": "", "external/math/erf.c": "", "external/math/erf_data.c": "", @@ -257,8 +257,8 @@ cc_library { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: makeCcLibraryTargets("fake-libarm-optimized-routines-math", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: makeCcLibraryTargets("fake-libarm-optimized-routines-math", AttrNameToString{ "copts": `select({ "//build/bazel/platforms/arch:arm64": ["-DHAVE_FAST_FMA=1"], "//conditions:default": [], @@ -270,16 +270,16 @@ cc_library { } func TestCcLibrarySharedStaticProps(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library shared/static props", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library shared/static props", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "both.cpp": "", "sharedonly.cpp": "", "staticonly.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", srcs: ["both.cpp"], @@ -354,8 +354,8 @@ cc_library { bazel_module: { bp2build_available: false }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "copts": `[ "bothflag", "staticflag", @@ -377,7 +377,7 @@ cc_library { ":whole_and_static_lib_for_both", ":whole_static_lib_for_static", ]`}), - makeBazelTarget("cc_library_shared", "a", attrNameToString{ + makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "copts": `[ "bothflag", "sharedflag", @@ -405,16 +405,16 @@ cc_library { } func TestCcLibraryDeps(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library shared/static props", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library shared/static props", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "both.cpp": "", "sharedonly.cpp": "", "staticonly.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", srcs: ["both.cpp"], @@ -462,8 +462,8 @@ cc_library { simpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep_for_static") + simpleModuleDoNotConvertBp2build("cc_library", "shared_dep_for_both") + simpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep_for_both"), - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "copts": `[ "bothflag", "staticflag", @@ -495,7 +495,7 @@ cc_library { ":whole_static_dep_for_static", ]`, }), - makeBazelTarget("cc_library_shared", "a", attrNameToString{ + makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "copts": `[ "bothflag", "sharedflag", @@ -532,11 +532,11 @@ cc_library { } func TestCcLibraryWholeStaticLibsAlwaysLink(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library { name: "a", @@ -558,15 +558,15 @@ cc_prebuilt_library_static { name: "whole_static_lib_for_static" } cc_prebuilt_library_static { name: "whole_static_lib_for_both" } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "whole_archive_deps": `[ ":whole_static_lib_for_both_alwayslink", ":whole_static_lib_for_static_alwayslink", ]`, }), - makeBazelTarget("cc_library_shared", "a", attrNameToString{ + makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "whole_archive_deps": `[ ":whole_static_lib_for_both_alwayslink", ":whole_static_lib_for_shared_alwayslink", @@ -578,12 +578,12 @@ cc_prebuilt_library_static { name: "whole_static_lib_for_both" } } func TestCcLibrarySharedStaticPropsInArch(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library shared/static props in arch", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library shared/static props in arch", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/arm.cpp": "", "foo/bar/x86.cpp": "", "foo/bar/sharedonly.cpp": "", @@ -652,9 +652,9 @@ cc_library_static { name: "x86_dep_for_static" } cc_library_static { name: "android_dep_for_shared" } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "copts": `[ "bothflag", "staticflag", @@ -678,7 +678,7 @@ cc_library_static { name: "android_dep_for_shared" } "//conditions:default": [], })`, }), - makeBazelTarget("cc_library_shared", "a", attrNameToString{ + makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "copts": `[ "bothflag", "sharedflag", @@ -728,12 +728,12 @@ cc_library_static { name: "android_dep_for_shared" } } func TestCcLibrarySharedStaticPropsWithMixedSources(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library shared/static props with c/cpp/s mixed sources", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library shared/static props with c/cpp/s mixed sources", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/both_source.cpp": "", "foo/bar/both_source.cc": "", "foo/bar/both_source.c": "", @@ -805,9 +805,9 @@ filegroup { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "local_includes": `["."]`, "srcs": `[ "both_source.cpp", @@ -832,7 +832,7 @@ filegroup { ":static_filegroup_c_srcs", ]`, }), - makeBazelTarget("cc_library_shared", "a", attrNameToString{ + makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "local_includes": `["."]`, "srcs": `[ "both_source.cpp", @@ -860,12 +860,12 @@ filegroup { } func TestCcLibraryNonConfiguredVersionScript(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library non-configured version script", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library non-configured version script", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library { name: "a", @@ -876,8 +876,8 @@ cc_library { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "additional_linker_inputs": `["v.map"]`, "linkopts": `["-Wl,--version-script,$(location v.map)"]`, "srcs": `["a.cpp"]`, @@ -887,12 +887,12 @@ cc_library { } func TestCcLibraryConfiguredVersionScript(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library configured version script", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library configured version script", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library { name: "a", @@ -911,8 +911,8 @@ cc_library { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "additional_linker_inputs": `select({ "//build/bazel/platforms/arch:arm": ["arm.map"], "//build/bazel/platforms/arch:arm64": ["arm64.map"], @@ -930,11 +930,11 @@ cc_library { } func TestCcLibrarySharedLibs(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library shared_libs", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library shared_libs", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "mylib", bazel_module: { bp2build_available: false }, @@ -946,7 +946,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "implementation_dynamic_deps": `[":mylib"]`, }), }, @@ -955,7 +955,7 @@ cc_library { func TestCcLibraryFeatures(t *testing.T) { expected_targets := []string{} - expected_targets = append(expected_targets, makeCcLibraryTargets("a", attrNameToString{ + expected_targets = append(expected_targets, makeCcLibraryTargets("a", AttrNameToString{ "features": `[ "disable_pack_relocations", "-no_undefined_symbols", @@ -963,7 +963,7 @@ func TestCcLibraryFeatures(t *testing.T) { ]`, "srcs": `["a.cpp"]`, })...) - expected_targets = append(expected_targets, makeCcLibraryTargets("b", attrNameToString{ + expected_targets = append(expected_targets, makeCcLibraryTargets("b", AttrNameToString{ "features": `["-coverage"] + select({ "//build/bazel/platforms/arch:x86_64": [ "disable_pack_relocations", @@ -973,7 +973,7 @@ func TestCcLibraryFeatures(t *testing.T) { })`, "srcs": `["b.cpp"]`, })...) - expected_targets = append(expected_targets, makeCcLibraryTargets("c", attrNameToString{ + expected_targets = append(expected_targets, makeCcLibraryTargets("c", AttrNameToString{ "features": `select({ "//build/bazel/platforms/os:darwin": [ "disable_pack_relocations", @@ -984,11 +984,11 @@ func TestCcLibraryFeatures(t *testing.T) { "srcs": `["c.cpp"]`, })...) - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library pack_relocations test", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library pack_relocations test", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", srcs: ["a.cpp"], @@ -1022,23 +1022,23 @@ cc_library { }, include_build_directory: false, }`, - expectedBazelTargets: expected_targets, + ExpectedBazelTargets: expected_targets, }) } func TestCcLibrarySpacesInCopts(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library spaces in copts", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library spaces in copts", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", cflags: ["-include header.h",], include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "copts": `[ "-include", "header.h", @@ -1049,11 +1049,11 @@ cc_library { } func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library cppflags usage", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library cppflags usage", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + `cc_library { name: "a", srcs: ["a.cpp"], cflags: ["-Wall"], @@ -1074,7 +1074,7 @@ func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "copts": `["-Wall"]`, "cppflags": `[ "-fsigned-char", @@ -1093,11 +1093,11 @@ func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) { } func TestCcLibraryExcludeLibs(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library { name: "foo_static", srcs: ["common.c"], @@ -1171,7 +1171,7 @@ cc_library { bazel_module: { bp2build_available: false }, } `, - expectedBazelTargets: makeCcLibraryTargets("foo_static", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo_static", AttrNameToString{ "implementation_deps": `select({ "//build/bazel/platforms/arch:arm": [], "//conditions:default": [":arm_static_lib_excludes_bp2build_cc_library_static"], @@ -1200,14 +1200,14 @@ cc_library { } func TestCCLibraryNoCrtTrue(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - nocrt: true emits attribute", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - nocrt: true emits attribute", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1215,7 +1215,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "link_crt": `False`, "srcs": `["impl.cpp"]`, }), @@ -1224,14 +1224,14 @@ cc_library { } func TestCCLibraryNoCrtFalse(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - nocrt: false - does not emit attribute", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - nocrt: false - does not emit attribute", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1239,21 +1239,21 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, }), }) } func TestCCLibraryNoCrtArchVariant(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - nocrt in select", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - nocrt in select", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1268,18 +1268,18 @@ cc_library { include_build_directory: false, } `, - expectedErr: fmt.Errorf("module \"foo-lib\": nocrt is not supported for arch variants"), + ExpectedErr: fmt.Errorf("module \"foo-lib\": nocrt is not supported for arch variants"), }) } func TestCCLibraryNoLibCrtTrue(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1287,14 +1287,14 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, "use_libcrt": `False`, }), }) } -func makeCcLibraryTargets(name string, attrs attrNameToString) []string { +func makeCcLibraryTargets(name string, attrs AttrNameToString) []string { STATIC_ONLY_ATTRS := map[string]bool{} SHARED_ONLY_ATTRS := map[string]bool{ "link_crt": true, @@ -1305,8 +1305,8 @@ func makeCcLibraryTargets(name string, attrs attrNameToString) []string { "stubs_versions": true, "inject_bssl_hash": true, } - sharedAttrs := attrNameToString{} - staticAttrs := attrNameToString{} + sharedAttrs := AttrNameToString{} + staticAttrs := AttrNameToString{} for key, val := range attrs { if _, staticOnly := STATIC_ONLY_ATTRS[key]; !staticOnly { sharedAttrs[key] = val @@ -1322,13 +1322,13 @@ func makeCcLibraryTargets(name string, attrs attrNameToString) []string { } func TestCCLibraryNoLibCrtFalse(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1336,7 +1336,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, "use_libcrt": `True`, }), @@ -1344,13 +1344,13 @@ cc_library { } func TestCCLibraryNoLibCrtArchVariant(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1365,7 +1365,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, "use_libcrt": `select({ "//build/bazel/platforms/arch:arm": False, @@ -1377,13 +1377,13 @@ cc_library { } func TestCCLibraryNoLibCrtArchAndTargetVariant(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1403,7 +1403,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, "use_libcrt": `select({ "//build/bazel/platforms/os_arch:android_arm": False, @@ -1420,13 +1420,13 @@ cc_library { } func TestCCLibraryNoLibCrtArchAndTargetVariantConflict(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["impl.cpp"], @@ -1447,7 +1447,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["impl.cpp"]`, "use_libcrt": `select({ "//build/bazel/platforms/os_arch:android_arm": False, @@ -1466,38 +1466,38 @@ cc_library { func TestCcLibraryStrip(t *testing.T) { expectedTargets := []string{} - expectedTargets = append(expectedTargets, makeCcLibraryTargets("all", attrNameToString{ + expectedTargets = append(expectedTargets, makeCcLibraryTargets("all", AttrNameToString{ "strip": `{ "all": True, }`, })...) - expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols", attrNameToString{ + expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols", AttrNameToString{ "strip": `{ "keep_symbols": True, }`, })...) - expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols_and_debug_frame", attrNameToString{ + expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols_and_debug_frame", AttrNameToString{ "strip": `{ "keep_symbols_and_debug_frame": True, }`, })...) - expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols_list", attrNameToString{ + expectedTargets = append(expectedTargets, makeCcLibraryTargets("keep_symbols_list", AttrNameToString{ "strip": `{ "keep_symbols_list": ["symbol"], }`, })...) - expectedTargets = append(expectedTargets, makeCcLibraryTargets("none", attrNameToString{ + expectedTargets = append(expectedTargets, makeCcLibraryTargets("none", AttrNameToString{ "strip": `{ "none": True, }`, })...) - expectedTargets = append(expectedTargets, makeCcLibraryTargets("nothing", attrNameToString{})...) + expectedTargets = append(expectedTargets, makeCcLibraryTargets("nothing", AttrNameToString{})...) - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library strip args", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library strip args", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "nothing", include_build_directory: false, @@ -1538,16 +1538,16 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: expectedTargets, + ExpectedBazelTargets: expectedTargets, }) } func TestCcLibraryStripWithArch(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library strip args", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library strip args", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "multi-arch", target: { @@ -1572,7 +1572,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("multi-arch", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("multi-arch", AttrNameToString{ "strip": `{ "keep_symbols": select({ "//build/bazel/platforms/arch:arm64": True, @@ -1596,18 +1596,18 @@ cc_library { } func TestCcLibrary_SystemSharedLibsRootEmpty(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty at root", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty at root", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "root_empty", system_shared_libs: [], include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("root_empty", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("root_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1615,11 +1615,11 @@ cc_library { } func TestCcLibrary_SystemSharedLibsStaticEmpty(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty for static variant", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty for static variant", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "static_empty", static: { @@ -1628,21 +1628,21 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "static_empty_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "static_empty_bp2build_cc_library_static", AttrNameToString{ "system_dynamic_deps": "[]", }), - makeBazelTarget("cc_library_shared", "static_empty", attrNameToString{}), + makeBazelTarget("cc_library_shared", "static_empty", AttrNameToString{}), }, }) } func TestCcLibrary_SystemSharedLibsSharedEmpty(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty for shared variant", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty for shared variant", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "shared_empty", shared: { @@ -1651,9 +1651,9 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "shared_empty_bp2build_cc_library_static", attrNameToString{}), - makeBazelTarget("cc_library_shared", "shared_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "shared_empty_bp2build_cc_library_static", AttrNameToString{}), + makeBazelTarget("cc_library_shared", "shared_empty", AttrNameToString{ "system_dynamic_deps": "[]", }), }, @@ -1661,11 +1661,11 @@ cc_library { } func TestCcLibrary_SystemSharedLibsSharedBionicEmpty(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty for shared, bionic variant", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty for shared, bionic variant", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "shared_empty", target: { @@ -1678,9 +1678,9 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "shared_empty_bp2build_cc_library_static", attrNameToString{}), - makeBazelTarget("cc_library_shared", "shared_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "shared_empty_bp2build_cc_library_static", AttrNameToString{}), + makeBazelTarget("cc_library_shared", "shared_empty", AttrNameToString{ "system_dynamic_deps": "[]", }), }, @@ -1692,11 +1692,11 @@ func TestCcLibrary_SystemSharedLibsLinuxBionicEmpty(t *testing.T) { // The correct behavior would be if bp2build wrote `system_dynamic_deps = []` // only for linux_bionic, but `android` had `["libc", "libdl", "libm"]. // b/195791252 tracks the fix. - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty for linux_bionic variant", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty for linux_bionic variant", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "target_linux_bionic_empty", target: { @@ -1707,7 +1707,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("target_linux_bionic_empty", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("target_linux_bionic_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1715,11 +1715,11 @@ cc_library { } func TestCcLibrary_SystemSharedLibsBionicEmpty(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs empty for bionic variant", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs empty for bionic variant", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "target_bionic_empty", target: { @@ -1730,7 +1730,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("target_bionic_empty", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("target_bionic_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1738,11 +1738,11 @@ cc_library { } func TestCcLibrary_SystemSharedLibsSharedAndRoot(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library system_shared_libs set for shared and root", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library system_shared_libs set for shared and root", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "libc", bazel_module: { bp2build_available: false }, @@ -1761,11 +1761,11 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "system_dynamic_deps": `[":libc"]`, }), - makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "system_dynamic_deps": `[ ":libc", ":libm", @@ -1776,12 +1776,12 @@ cc_library { } func TestCcLibraryOsSelects(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - selects for all os targets", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - selects for all os targets", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "foo-lib", srcs: ["base.cpp"], @@ -1811,7 +1811,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("foo-lib", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo-lib", AttrNameToString{ "srcs": `["base.cpp"] + select({ "//build/bazel/platforms/os:android": [ "linux.cpp", @@ -1840,12 +1840,12 @@ cc_library { } func TestLibcryptoHashInjection(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library - libcrypto hash injection", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library - libcrypto hash injection", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryPreamble + ` cc_library { name: "libcrypto", target: { @@ -1856,7 +1856,7 @@ cc_library { include_build_directory: false, } `, - expectedBazelTargets: makeCcLibraryTargets("libcrypto", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("libcrypto", AttrNameToString{ "inject_bssl_hash": `select({ "//build/bazel/platforms/os:android": True, "//conditions:default": None, @@ -1940,7 +1940,7 @@ func TestCcLibraryCppStdWithGnuExtensions_ConvertsToFeatureAttr(t *testing.T) { if tc.gnu_extensions != "" { gnuExtensionsProp = fmt.Sprintf(" gnu_extensions: %s,", tc.gnu_extensions) } - attrs := attrNameToString{} + attrs := AttrNameToString{} if tc.bazel_cpp_std != "" { attrs["cpp_std"] = fmt.Sprintf(`"%s"`, tc.bazel_cpp_std) } @@ -1948,12 +1948,12 @@ func TestCcLibraryCppStdWithGnuExtensions_ConvertsToFeatureAttr(t *testing.T) { attrs["c_std"] = fmt.Sprintf(`"%s"`, tc.bazel_c_std) } - runCcLibraryTestCase(t, bp2buildTestCase{ - description: fmt.Sprintf( + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: fmt.Sprintf( "cc_library with cpp_std: %s and gnu_extensions: %s", tc.cpp_std, tc.gnu_extensions), - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcLibraryPreamble + fmt.Sprintf(` + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcLibraryPreamble + fmt.Sprintf(` cc_library { name: "%s_full", %s // cpp_std: *string @@ -1962,15 +1962,15 @@ cc_library { include_build_directory: false, } `, name_prefix, cppStdProp, cStdProp, gnuExtensionsProp), - expectedBazelTargets: makeCcLibraryTargets(name_prefix+"_full", attrs), + ExpectedBazelTargets: makeCcLibraryTargets(name_prefix+"_full", attrs), }) - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: fmt.Sprintf( + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: fmt.Sprintf( "cc_library_static with cpp_std: %s and gnu_extensions: %s", tc.cpp_std, tc.gnu_extensions), - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: soongCcLibraryPreamble + fmt.Sprintf(` + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: soongCcLibraryPreamble + fmt.Sprintf(` cc_library_static { name: "%s_static", %s // cpp_std: *string @@ -1979,17 +1979,17 @@ cc_library_static { include_build_directory: false, } `, name_prefix, cppStdProp, cStdProp, gnuExtensionsProp), - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ makeBazelTarget("cc_library_static", name_prefix+"_static", attrs), }, }) - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: fmt.Sprintf( + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: fmt.Sprintf( "cc_library_shared with cpp_std: %s and gnu_extensions: %s", tc.cpp_std, tc.gnu_extensions), - moduleTypeUnderTest: "cc_library_shared", - moduleTypeUnderTestFactory: cc.LibrarySharedFactory, - blueprint: soongCcLibraryPreamble + fmt.Sprintf(` + ModuleTypeUnderTest: "cc_library_shared", + ModuleTypeUnderTestFactory: cc.LibrarySharedFactory, + Blueprint: soongCcLibraryPreamble + fmt.Sprintf(` cc_library_shared { name: "%s_shared", %s // cpp_std: *string @@ -1998,7 +1998,7 @@ cc_library_shared { include_build_directory: false, } `, name_prefix, cppStdProp, cStdProp, gnuExtensionsProp), - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ makeBazelTarget("cc_library_shared", name_prefix+"_shared", attrs), }, }) @@ -2007,23 +2007,23 @@ cc_library_shared { } func TestCcLibraryProtoSimple(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_whole_archive_deps": `[":foo_cc_proto_lite"]`, "deps": `[":libprotobuf-cpp-lite"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, }), }, @@ -2031,25 +2031,25 @@ func TestCcLibraryProtoSimple(t *testing.T) { } func TestCcLibraryProtoNoCanonicalPathFromRoot(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], proto: { canonical_path_from_root: false}, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, "strip_import_prefix": `""`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_whole_archive_deps": `[":foo_cc_proto_lite"]`, "deps": `[":libprotobuf-cpp-lite"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, }), }, @@ -2057,24 +2057,24 @@ func TestCcLibraryProtoNoCanonicalPathFromRoot(t *testing.T) { } func TestCcLibraryProtoExplicitCanonicalPathFromRoot(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], proto: { canonical_path_from_root: true}, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_whole_archive_deps": `[":foo_cc_proto_lite"]`, "deps": `[":libprotobuf-cpp-lite"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, }), }, @@ -2082,10 +2082,10 @@ func TestCcLibraryProtoExplicitCanonicalPathFromRoot(t *testing.T) { } func TestCcLibraryProtoFull(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], proto: { @@ -2093,15 +2093,15 @@ func TestCcLibraryProtoFull(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_proto_library", "foo_cc_proto", attrNameToString{ + }), makeBazelTarget("cc_proto_library", "foo_cc_proto", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_whole_archive_deps": `[":foo_cc_proto"]`, "deps": `[":libprotobuf-cpp-full"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-full"]`, }), }, @@ -2109,10 +2109,10 @@ func TestCcLibraryProtoFull(t *testing.T) { } func TestCcLibraryProtoLite(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], proto: { @@ -2120,15 +2120,15 @@ func TestCcLibraryProtoLite(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_whole_archive_deps": `[":foo_cc_proto_lite"]`, "deps": `[":libprotobuf-cpp-lite"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, }), }, @@ -2136,10 +2136,10 @@ func TestCcLibraryProtoLite(t *testing.T) { } func TestCcLibraryProtoExportHeaders(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.proto"], proto: { @@ -2147,15 +2147,15 @@ func TestCcLibraryProtoExportHeaders(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, }), @@ -2164,10 +2164,10 @@ func TestCcLibraryProtoExportHeaders(t *testing.T) { } func TestCcLibraryProtoFilegroups(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + simpleModuleDoNotConvertBp2build("filegroup", "a_fg_proto") + simpleModuleDoNotConvertBp2build("filegroup", "b_protos") + simpleModuleDoNotConvertBp2build("filegroup", "c-proto-srcs") + @@ -2207,66 +2207,66 @@ cc_library { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "a_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "a_proto", AttrNameToString{ "srcs": `[":a_fg_proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "a_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "a_cc_proto_lite", AttrNameToString{ "deps": `[":a_proto"]`, - }), makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":a_cc_proto_lite"]`, "srcs": `[":a_fg_proto_cpp_srcs"]`, "srcs_as": `[":a_fg_proto_as_srcs"]`, "srcs_c": `[":a_fg_proto_c_srcs"]`, - }), makeBazelTarget("cc_library_shared", "a", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":a_cc_proto_lite"]`, "srcs": `[":a_fg_proto_cpp_srcs"]`, "srcs_as": `[":a_fg_proto_as_srcs"]`, "srcs_c": `[":a_fg_proto_c_srcs"]`, - }), makeBazelTarget("proto_library", "b_proto", attrNameToString{ + }), makeBazelTarget("proto_library", "b_proto", AttrNameToString{ "srcs": `[":b_protos"]`, - }), makeBazelTarget("cc_lite_proto_library", "b_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "b_cc_proto_lite", AttrNameToString{ "deps": `[":b_proto"]`, - }), makeBazelTarget("cc_library_static", "b_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "b_bp2build_cc_library_static", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":b_cc_proto_lite"]`, "srcs": `[":b_protos_cpp_srcs"]`, "srcs_as": `[":b_protos_as_srcs"]`, "srcs_c": `[":b_protos_c_srcs"]`, - }), makeBazelTarget("cc_library_shared", "b", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "b", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":b_cc_proto_lite"]`, "srcs": `[":b_protos_cpp_srcs"]`, "srcs_as": `[":b_protos_as_srcs"]`, "srcs_c": `[":b_protos_c_srcs"]`, - }), makeBazelTarget("proto_library", "c_proto", attrNameToString{ + }), makeBazelTarget("proto_library", "c_proto", AttrNameToString{ "srcs": `[":c-proto-srcs"]`, - }), makeBazelTarget("cc_lite_proto_library", "c_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "c_cc_proto_lite", AttrNameToString{ "deps": `[":c_proto"]`, - }), makeBazelTarget("cc_library_static", "c_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "c_bp2build_cc_library_static", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":c_cc_proto_lite"]`, "srcs": `[":c-proto-srcs_cpp_srcs"]`, "srcs_as": `[":c-proto-srcs_as_srcs"]`, "srcs_c": `[":c-proto-srcs_c_srcs"]`, - }), makeBazelTarget("cc_library_shared", "c", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "c", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":c_cc_proto_lite"]`, "srcs": `[":c-proto-srcs_cpp_srcs"]`, "srcs_as": `[":c-proto-srcs_as_srcs"]`, "srcs_c": `[":c-proto-srcs_c_srcs"]`, - }), makeBazelTarget("proto_library", "d_proto", attrNameToString{ + }), makeBazelTarget("proto_library", "d_proto", AttrNameToString{ "srcs": `[":proto-srcs-d"]`, - }), makeBazelTarget("cc_lite_proto_library", "d_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "d_cc_proto_lite", AttrNameToString{ "deps": `[":d_proto"]`, - }), makeBazelTarget("cc_library_static", "d_bp2build_cc_library_static", attrNameToString{ + }), makeBazelTarget("cc_library_static", "d_bp2build_cc_library_static", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":d_cc_proto_lite"]`, "srcs": `[":proto-srcs-d_cpp_srcs"]`, "srcs_as": `[":proto-srcs-d_as_srcs"]`, "srcs_c": `[":proto-srcs-d_c_srcs"]`, - }), makeBazelTarget("cc_library_shared", "d", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "d", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":d_cc_proto_lite"]`, "srcs": `[":proto-srcs-d_cpp_srcs"]`, @@ -2278,10 +2278,10 @@ cc_library { } func TestCcLibraryDisabledArchAndTarget(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.cpp"], host_supported: true, @@ -2298,7 +2298,7 @@ func TestCcLibraryDisabledArchAndTarget(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: makeCcLibraryTargets("foo", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `select({ "//build/bazel/platforms/os_arch:darwin_arm64": ["@platforms//:incompatible"], @@ -2313,10 +2313,10 @@ func TestCcLibraryDisabledArchAndTarget(t *testing.T) { } func TestCcLibraryDisabledArchAndTargetWithDefault(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.cpp"], enabled: false, @@ -2334,7 +2334,7 @@ func TestCcLibraryDisabledArchAndTargetWithDefault(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: makeCcLibraryTargets("foo", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `select({ "//build/bazel/platforms/os_arch:darwin_arm64": [], @@ -2346,10 +2346,10 @@ func TestCcLibraryDisabledArchAndTargetWithDefault(t *testing.T) { } func TestCcLibrarySharedDisabled(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", srcs: ["foo.cpp"], enabled: false, @@ -2365,10 +2365,10 @@ func TestCcLibrarySharedDisabled(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `["@platforms//:incompatible"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `select({ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], @@ -2380,10 +2380,10 @@ func TestCcLibrarySharedDisabled(t *testing.T) { } func TestCcLibraryStaticDisabledForSomeArch(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", host_supported: true, srcs: ["foo.cpp"], @@ -2405,13 +2405,13 @@ func TestCcLibraryStaticDisabledForSomeArch(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `select({ "//build/bazel/platforms/os:windows": ["@platforms//:incompatible"], "//conditions:default": [], })`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "srcs": `["foo.cpp"]`, "target_compatible_with": `select({ "//build/bazel/platforms/os_arch:darwin_arm64": [], @@ -2424,12 +2424,12 @@ func TestCcLibraryStaticDisabledForSomeArch(t *testing.T) { } func TestCcLibraryStubs(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - description: "cc_library stubs", - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + Description: "cc_library stubs", + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library { name: "a", @@ -2439,8 +2439,8 @@ cc_library { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: makeCcLibraryTargets("a", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: makeCcLibraryTargets("a", AttrNameToString{ "stubs_symbol_file": `"a.map.txt"`, "stubs_versions": `[ "28", @@ -2453,25 +2453,25 @@ cc_library { } func TestCcLibraryEscapeLdflags(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - blueprint: soongCcProtoPreamble + `cc_library { + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Blueprint: soongCcProtoPreamble + `cc_library { name: "foo", ldflags: ["-Wl,--rpath,${ORIGIN}"], include_build_directory: false, }`, - expectedBazelTargets: makeCcLibraryTargets("foo", attrNameToString{ + ExpectedBazelTargets: makeCcLibraryTargets("foo", AttrNameToString{ "linkopts": `["-Wl,--rpath,$${ORIGIN}"]`, }), }) } func TestCcLibraryConvertLex(t *testing.T) { - runCcLibraryTestCase(t, bp2buildTestCase{ - moduleTypeUnderTest: "cc_library", - moduleTypeUnderTestFactory: cc.LibraryFactory, - filesystem: map[string]string{ + runCcLibraryTestCase(t, Bp2buildTestCase{ + ModuleTypeUnderTest: "cc_library", + ModuleTypeUnderTestFactory: cc.LibraryFactory, + Filesystem: map[string]string{ "foo.c": "", "bar.cc": "", "foo1.l": "", @@ -2479,22 +2479,22 @@ func TestCcLibraryConvertLex(t *testing.T) { "foo2.l": "", "bar2.ll": "", }, - blueprint: `cc_library { + Blueprint: `cc_library { name: "foo_lib", srcs: ["foo.c", "bar.cc", "foo1.l", "foo2.l", "bar1.ll", "bar2.ll"], lex: { flags: ["--foo_flags"] }, include_build_directory: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: append([]string{ - makeBazelTarget("genlex", "foo_lib_genlex_l", attrNameToString{ + ExpectedBazelTargets: append([]string{ + makeBazelTarget("genlex", "foo_lib_genlex_l", AttrNameToString{ "srcs": `[ "foo1.l", "foo2.l", ]`, "lexopts": `["--foo_flags"]`, }), - makeBazelTarget("genlex", "foo_lib_genlex_ll", attrNameToString{ + makeBazelTarget("genlex", "foo_lib_genlex_ll", AttrNameToString{ "srcs": `[ "bar1.ll", "bar2.ll", @@ -2502,7 +2502,7 @@ func TestCcLibraryConvertLex(t *testing.T) { "lexopts": `["--foo_flags"]`, }), }, - makeCcLibraryTargets("foo_lib", attrNameToString{ + makeCcLibraryTargets("foo_lib", AttrNameToString{ "srcs": `[ "bar.cc", ":foo_lib_genlex_ll", diff --git a/bp2build/cc_library_headers_conversion_test.go b/bp2build/cc_library_headers_conversion_test.go index 641984b52..bb59c63e8 100644 --- a/bp2build/cc_library_headers_conversion_test.go +++ b/bp2build/cc_library_headers_conversion_test.go @@ -59,17 +59,17 @@ func registerCcLibraryHeadersModuleTypes(ctx android.RegistrationContext) { cc.RegisterCCBuildComponents(ctx) } -func runCcLibraryHeadersTestCase(t *testing.T, tc bp2buildTestCase) { +func runCcLibraryHeadersTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerCcLibraryHeadersModuleTypes, tc) + RunBp2BuildTestCase(t, registerCcLibraryHeadersModuleTypes, tc) } func TestCcLibraryHeadersSimple(t *testing.T) { - runCcLibraryHeadersTestCase(t, bp2buildTestCase{ - description: "cc_library_headers test", - moduleTypeUnderTest: "cc_library_headers", - moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, - filesystem: map[string]string{ + runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ + Description: "cc_library_headers test", + ModuleTypeUnderTest: "cc_library_headers", + ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory, + Filesystem: map[string]string{ "lib-1/lib1a.h": "", "lib-1/lib1b.h": "", "lib-2/lib2a.h": "", @@ -82,7 +82,7 @@ func TestCcLibraryHeadersSimple(t *testing.T) { "arch_x86_exported_include_dir/b.h": "", "arch_x86_64_exported_include_dir/c.h": "", }, - blueprint: soongCcLibraryHeadersPreamble + ` + Blueprint: soongCcLibraryHeadersPreamble + ` cc_library_headers { name: "foo_headers", export_include_dirs: ["dir-1", "dir-2"], @@ -105,8 +105,8 @@ cc_library_headers { // TODO: Also support export_header_lib_headers }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "export_includes": `[ "dir-1", "dir-2", @@ -124,12 +124,12 @@ cc_library_headers { } func TestCcLibraryHeadersOsSpecificHeader(t *testing.T) { - runCcLibraryHeadersTestCase(t, bp2buildTestCase{ - description: "cc_library_headers test with os-specific header_libs props", - moduleTypeUnderTest: "cc_library_headers", - moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ + Description: "cc_library_headers test with os-specific header_libs props", + ModuleTypeUnderTest: "cc_library_headers", + ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryPreamble + ` cc_library_headers { name: "android-lib", bazel_module: { bp2build_available: false }, @@ -182,8 +182,8 @@ cc_library_headers { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":base-lib"] + select({ "//build/bazel/platforms/os:android": [":android-lib"], "//build/bazel/platforms/os:darwin": [":darwin-lib"], @@ -198,12 +198,12 @@ cc_library_headers { } func TestCcLibraryHeadersOsSpecficHeaderLibsExportHeaderLibHeaders(t *testing.T) { - runCcLibraryHeadersTestCase(t, bp2buildTestCase{ - description: "cc_library_headers test with os-specific header_libs and export_header_lib_headers props", - moduleTypeUnderTest: "cc_library_headers", - moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryPreamble + ` + runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ + Description: "cc_library_headers test with os-specific header_libs and export_header_lib_headers props", + ModuleTypeUnderTest: "cc_library_headers", + ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryPreamble + ` cc_library_headers { name: "android-lib", bazel_module: { bp2build_available: false }, @@ -222,8 +222,8 @@ cc_library_headers { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `select({ "//build/bazel/platforms/os:android": [":exported-lib"], "//conditions:default": [], @@ -234,12 +234,12 @@ cc_library_headers { } func TestCcLibraryHeadersArchAndTargetExportSystemIncludes(t *testing.T) { - runCcLibraryHeadersTestCase(t, bp2buildTestCase{ - description: "cc_library_headers test with arch-specific and target-specific export_system_include_dirs props", - moduleTypeUnderTest: "cc_library_headers", - moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, - filesystem: map[string]string{}, - blueprint: soongCcLibraryPreamble + `cc_library_headers { + runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ + Description: "cc_library_headers test with arch-specific and target-specific export_system_include_dirs props", + ModuleTypeUnderTest: "cc_library_headers", + ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory, + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryPreamble + `cc_library_headers { name: "foo_headers", export_system_include_dirs: [ "shared_include_dir", @@ -275,8 +275,8 @@ func TestCcLibraryHeadersArchAndTargetExportSystemIncludes(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "export_system_includes": `["shared_include_dir"] + select({ "//build/bazel/platforms/arch:arm": ["arm_include_dir"], "//build/bazel/platforms/arch:x86_64": ["x86_64_include_dir"], @@ -293,11 +293,11 @@ func TestCcLibraryHeadersArchAndTargetExportSystemIncludes(t *testing.T) { } func TestCcLibraryHeadersNoCrtIgnored(t *testing.T) { - runCcLibraryHeadersTestCase(t, bp2buildTestCase{ - description: "cc_library_headers test", - moduleTypeUnderTest: "cc_library_headers", - moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, - filesystem: map[string]string{ + runCcLibraryHeadersTestCase(t, Bp2buildTestCase{ + Description: "cc_library_headers test", + ModuleTypeUnderTest: "cc_library_headers", + ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory, + Filesystem: map[string]string{ "lib-1/lib1a.h": "", "lib-1/lib1b.h": "", "lib-2/lib2a.h": "", @@ -310,15 +310,15 @@ func TestCcLibraryHeadersNoCrtIgnored(t *testing.T) { "arch_x86_exported_include_dir/b.h": "", "arch_x86_64_exported_include_dir/c.h": "", }, - blueprint: soongCcLibraryHeadersPreamble + ` + Blueprint: soongCcLibraryHeadersPreamble + ` cc_library_headers { name: "lib-1", export_include_dirs: ["lib-1"], no_libcrt: true, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "lib-1", AttrNameToString{ "export_includes": `["lib-1"]`, }), }, @@ -326,12 +326,12 @@ 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 + ` + 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"], @@ -339,8 +339,8 @@ cc_library_headers { bazel_module: { bp2build_available: true }, } ` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, }), }, @@ -348,12 +348,12 @@ cc_library_headers { } 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 + ` + 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"], @@ -361,8 +361,8 @@ cc_library_headers { bazel_module: { bp2build_available: true }, } ` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, }), }, @@ -370,12 +370,12 @@ cc_library_headers { } 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 + ` + 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"], @@ -383,8 +383,8 @@ cc_library_headers { bazel_module: { bp2build_available: true }, } ` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{ "deps": `[":foo_export"]`, }), }, diff --git a/bp2build/cc_library_shared_conversion_test.go b/bp2build/cc_library_shared_conversion_test.go index 74729e4e1..6a4786254 100644 --- a/bp2build/cc_library_shared_conversion_test.go +++ b/bp2build/cc_library_shared_conversion_test.go @@ -35,17 +35,17 @@ func registerCcLibrarySharedModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("cc_library", cc.LibraryFactory) } -func runCcLibrarySharedTestCase(t *testing.T, tc bp2buildTestCase) { +func runCcLibrarySharedTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "cc_library_shared" - (&tc).moduleTypeUnderTestFactory = cc.LibrarySharedFactory - runBp2BuildTestCase(t, registerCcLibrarySharedModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "cc_library_shared" + (&tc).ModuleTypeUnderTestFactory = cc.LibrarySharedFactory + RunBp2BuildTestCase(t, registerCcLibrarySharedModuleTypes, tc) } func TestCcLibrarySharedSimple(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared simple overall test", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared simple overall test", + Filesystem: map[string]string{ // NOTE: include_dir headers *should not* appear in Bazel hdrs later (?) "include_dir_1/include_dir_1_a.h": "", "include_dir_1/include_dir_1_b.h": "", @@ -65,7 +65,7 @@ func TestCcLibrarySharedSimple(t *testing.T) { "implicit_include_1.h": "", "implicit_include_2.h": "", }, - blueprint: soongCcLibrarySharedPreamble + ` + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_headers { name: "header_lib_1", export_include_dirs: ["header_lib_1"], @@ -141,8 +141,8 @@ cc_library_shared { // TODO: Also support export_header_lib_headers }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "absolute_includes": `[ "include_dir_1", "include_dir_2", @@ -184,10 +184,10 @@ cc_library_shared { } func TestCcLibrarySharedArchSpecificSharedLib(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared arch-specific shared_libs with whole_static_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibrarySharedPreamble + ` + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared arch-specific shared_libs with whole_static_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_static { name: "static_dep", bazel_module: { bp2build_available: false }, @@ -201,8 +201,8 @@ cc_library_shared { arch: { arm64: { shared_libs: ["shared_dep"], whole_static_libs: ["static_dep"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "implementation_dynamic_deps": `select({ "//build/bazel/platforms/arch:arm64": [":shared_dep"], "//conditions:default": [], @@ -217,10 +217,10 @@ cc_library_shared { } func TestCcLibrarySharedOsSpecificSharedLib(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared os-specific shared_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibrarySharedPreamble + ` + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared os-specific shared_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "shared_dep", bazel_module: { bp2build_available: false }, @@ -230,8 +230,8 @@ cc_library_shared { target: { android: { shared_libs: ["shared_dep"], } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "implementation_dynamic_deps": `select({ "//build/bazel/platforms/os:android": [":shared_dep"], "//conditions:default": [], @@ -242,10 +242,10 @@ cc_library_shared { } func TestCcLibrarySharedBaseArchOsSpecificSharedLib(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared base, arch, and os-specific shared_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibrarySharedPreamble + ` + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared base, arch, and os-specific shared_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "shared_dep", bazel_module: { bp2build_available: false }, @@ -265,8 +265,8 @@ cc_library_shared { arch: { arm64: { shared_libs: ["shared_dep3"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "implementation_dynamic_deps": `[":shared_dep"] + select({ "//build/bazel/platforms/arch:arm64": [":shared_dep3"], "//conditions:default": [], @@ -280,22 +280,22 @@ cc_library_shared { } func TestCcLibrarySharedSimpleExcludeSrcs(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared simple exclude_srcs", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared simple exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "foo-a.c": "", "foo-excluded.c": "", }, - blueprint: soongCcLibrarySharedPreamble + ` + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "foo_shared", srcs: ["common.c", "foo-*.c"], exclude_srcs: ["foo-excluded.c"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "srcs_c": `[ "common.c", "foo-a.c", @@ -306,10 +306,10 @@ cc_library_shared { } func TestCcLibrarySharedStrip(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared stripping", - filesystem: map[string]string{}, - blueprint: soongCcLibrarySharedPreamble + ` + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared stripping", + Filesystem: map[string]string{}, + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "foo_shared", strip: { @@ -321,8 +321,8 @@ cc_library_shared { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "strip": `{ "all": True, "keep_symbols": False, @@ -339,19 +339,19 @@ cc_library_shared { } func TestCcLibrarySharedVersionScript(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared version script", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared version script", + Filesystem: map[string]string{ "version_script": "", }, - blueprint: soongCcLibrarySharedPreamble + ` + Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "foo_shared", version_script: "version_script", include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "additional_linker_inputs": `["version_script"]`, "linkopts": `["-Wl,--version-script,$(location version_script)"]`, }), @@ -360,12 +360,12 @@ cc_library_shared { } func TestCcLibrarySharedNoCrtTrue(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared - nocrt: true emits attribute", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared - nocrt: true emits attribute", + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library_shared { name: "foo_shared", srcs: ["impl.cpp"], @@ -373,8 +373,8 @@ cc_library_shared { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "link_crt": `False`, "srcs": `["impl.cpp"]`, }), @@ -383,12 +383,12 @@ cc_library_shared { } func TestCcLibrarySharedNoCrtFalse(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared - nocrt: false doesn't emit attribute", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared - nocrt: false doesn't emit attribute", + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library_shared { name: "foo_shared", srcs: ["impl.cpp"], @@ -396,8 +396,8 @@ cc_library_shared { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo_shared", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ "srcs": `["impl.cpp"]`, }), }, @@ -405,12 +405,12 @@ cc_library_shared { } func TestCcLibrarySharedNoCrtArchVariant(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared - nocrt in select", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared - nocrt in select", + Filesystem: map[string]string{ "impl.cpp": "", }, - blueprint: soongCcLibraryPreamble + ` + Blueprint: soongCcLibraryPreamble + ` cc_library_shared { name: "foo_shared", srcs: ["impl.cpp"], @@ -425,13 +425,13 @@ cc_library_shared { include_build_directory: false, } `, - expectedErr: fmt.Errorf("module \"foo_shared\": nocrt is not supported for arch variants"), + ExpectedErr: fmt.Errorf("module \"foo_shared\": nocrt is not supported for arch variants"), }) } func TestCcLibrarySharedProto(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_shared { + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_shared { name: "foo", srcs: ["foo.proto"], proto: { @@ -439,12 +439,12 @@ func TestCcLibrarySharedProto(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "dynamic_deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, }), @@ -453,14 +453,14 @@ func TestCcLibrarySharedProto(t *testing.T) { } func TestCcLibrarySharedUseVersionLib(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_shared { + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_shared { name: "foo", use_version_lib: true, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "use_version_lib": "True", }), }, @@ -468,12 +468,12 @@ func TestCcLibrarySharedUseVersionLib(t *testing.T) { } func TestCcLibrarySharedStubs(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared stubs", - moduleTypeUnderTest: "cc_library_shared", - moduleTypeUnderTestFactory: cc.LibrarySharedFactory, - dir: "foo/bar", - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared stubs", + ModuleTypeUnderTest: "cc_library_shared", + ModuleTypeUnderTestFactory: cc.LibrarySharedFactory, + Dir: "foo/bar", + Filesystem: map[string]string{ "foo/bar/Android.bp": ` cc_library_shared { name: "a", @@ -483,8 +483,8 @@ cc_library_shared { } `, }, - blueprint: soongCcLibraryPreamble, - expectedBazelTargets: []string{makeBazelTarget("cc_library_shared", "a", attrNameToString{ + Blueprint: soongCcLibraryPreamble, + ExpectedBazelTargets: []string{makeBazelTarget("cc_library_shared", "a", AttrNameToString{ "stubs_symbol_file": `"a.map.txt"`, "stubs_versions": `[ "28", @@ -498,11 +498,11 @@ cc_library_shared { } func TestCcLibrarySharedSystemSharedLibsSharedEmpty(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared system_shared_libs empty shared default", - moduleTypeUnderTest: "cc_library_shared", - moduleTypeUnderTestFactory: cc.LibrarySharedFactory, - blueprint: soongCcLibrarySharedPreamble + ` + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared system_shared_libs empty shared default", + ModuleTypeUnderTest: "cc_library_shared", + ModuleTypeUnderTestFactory: cc.LibrarySharedFactory, + Blueprint: soongCcLibrarySharedPreamble + ` cc_defaults { name: "empty_defaults", shared: { @@ -515,18 +515,18 @@ cc_library_shared { defaults: ["empty_defaults"], } `, - expectedBazelTargets: []string{makeBazelTarget("cc_library_shared", "empty", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("cc_library_shared", "empty", AttrNameToString{ "system_dynamic_deps": "[]", })}, }) } func TestCcLibrarySharedConvertLex(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_shared with lex files", - moduleTypeUnderTest: "cc_library_shared", - moduleTypeUnderTestFactory: cc.LibrarySharedFactory, - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_shared with lex files", + ModuleTypeUnderTest: "cc_library_shared", + ModuleTypeUnderTestFactory: cc.LibrarySharedFactory, + Filesystem: map[string]string{ "foo.c": "", "bar.cc": "", "foo1.l": "", @@ -534,29 +534,29 @@ func TestCcLibrarySharedConvertLex(t *testing.T) { "foo2.l": "", "bar2.ll": "", }, - blueprint: `cc_library_shared { + Blueprint: `cc_library_shared { name: "foo_lib", srcs: ["foo.c", "bar.cc", "foo1.l", "foo2.l", "bar1.ll", "bar2.ll"], lex: { flags: ["--foo_flags"] }, include_build_directory: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("genlex", "foo_lib_genlex_l", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("genlex", "foo_lib_genlex_l", AttrNameToString{ "srcs": `[ "foo1.l", "foo2.l", ]`, "lexopts": `["--foo_flags"]`, }), - makeBazelTarget("genlex", "foo_lib_genlex_ll", attrNameToString{ + makeBazelTarget("genlex", "foo_lib_genlex_ll", AttrNameToString{ "srcs": `[ "bar1.ll", "bar2.ll", ]`, "lexopts": `["--foo_flags"]`, }), - makeBazelTarget("cc_library_shared", "foo_lib", attrNameToString{ + makeBazelTarget("cc_library_shared", "foo_lib", AttrNameToString{ "srcs": `[ "bar.cc", ":foo_lib_genlex_ll", @@ -571,8 +571,8 @@ func TestCcLibrarySharedConvertLex(t *testing.T) { } func TestCcLibrarySharedClangUnknownFlags(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_shared { + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_shared { name: "foo", conlyflags: ["-a", "-finline-functions"], cflags: ["-b","-finline-functions"], @@ -580,8 +580,8 @@ func TestCcLibrarySharedClangUnknownFlags(t *testing.T) { ldflags: ["-d","-finline-functions", "-e"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "conlyflags": `["-a"]`, "copts": `["-b"]`, "cppflags": `["-c"]`, @@ -595,8 +595,8 @@ func TestCcLibrarySharedClangUnknownFlags(t *testing.T) { } func TestCCLibraryFlagSpaceSplitting(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_shared { + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_shared { name: "foo", conlyflags: [ "-include header.h"], cflags: ["-include header.h"], @@ -604,8 +604,8 @@ func TestCCLibraryFlagSpaceSplitting(t *testing.T) { version_script: "version_script", include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_shared", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "additional_linker_inputs": `["version_script"]`, "conlyflags": `[ "-include", diff --git a/bp2build/cc_library_static_conversion_test.go b/bp2build/cc_library_static_conversion_test.go index 36c46a427..ddb7bf94b 100644 --- a/bp2build/cc_library_static_conversion_test.go +++ b/bp2build/cc_library_static_conversion_test.go @@ -65,18 +65,18 @@ func registerCcLibraryStaticModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("cc_library", cc.LibraryFactory) } -func runCcLibraryStaticTestCase(t *testing.T, tc bp2buildTestCase) { +func runCcLibraryStaticTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "cc_library_static" - (&tc).moduleTypeUnderTestFactory = cc.LibraryStaticFactory - runBp2BuildTestCase(t, registerCcLibraryStaticModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "cc_library_static" + (&tc).ModuleTypeUnderTestFactory = cc.LibraryStaticFactory + RunBp2BuildTestCase(t, registerCcLibraryStaticModuleTypes, tc) } func TestCcLibraryStaticSimple(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static test", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static test", + Filesystem: map[string]string{ // NOTE: include_dir headers *should not* appear in Bazel hdrs later (?) "include_dir_1/include_dir_1_a.h": "", "include_dir_1/include_dir_1_b.h": "", @@ -96,7 +96,7 @@ func TestCcLibraryStaticSimple(t *testing.T) { "implicit_include_1.h": "", "implicit_include_2.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_headers { name: "header_lib_1", export_include_dirs: ["header_lib_1"], @@ -172,8 +172,8 @@ cc_library_static { // TODO: Also support export_header_lib_headers }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "absolute_includes": `[ "include_dir_1", "include_dir_2", @@ -213,9 +213,9 @@ cc_library_static { } func TestCcLibraryStaticSubpackage(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static subpackage test", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static subpackage test", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": "", "subpackage/subpackage_header.h": "", @@ -229,7 +229,7 @@ func TestCcLibraryStaticSubpackage(t *testing.T) { "subpackage/subsubpackage/subsubsubpackage/subsubsubpackage_header.h": "", "subpackage/subsubpackage/subsubsubpackage/subdirectory/subdirectory_header.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: [], @@ -237,8 +237,8 @@ cc_library_static { "subpackage", ], }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "absolute_includes": `["subpackage"]`, "local_includes": `["."]`, }), @@ -247,22 +247,22 @@ cc_library_static { } func TestCcLibraryStaticExportIncludeDir(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static export include dir", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static export include dir", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": "", "subpackage/subpackage_header.h": "", "subpackage/subdirectory/subdirectory_header.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", export_include_dirs: ["subpackage"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "export_includes": `["subpackage"]`, }), }, @@ -270,22 +270,22 @@ cc_library_static { } func TestCcLibraryStaticExportSystemIncludeDir(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static export system include dir", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static export system include dir", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": "", "subpackage/subpackage_header.h": "", "subpackage/subdirectory/subdirectory_header.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", export_system_include_dirs: ["subpackage"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "export_system_includes": `["subpackage"]`, }), }, @@ -293,10 +293,10 @@ cc_library_static { } func TestCcLibraryStaticManyIncludeDirs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static include_dirs, local_include_dirs, export_include_dirs (b/183742505)", - dir: "subpackage", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static include_dirs, local_include_dirs, export_include_dirs (b/183742505)", + Dir: "subpackage", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": ` cc_library_static { @@ -318,9 +318,9 @@ cc_library_static { "subpackage2/header.h": "", "subpackage3/subsubpackage/header.h": "", }, - blueprint: soongCcLibraryStaticPreamble, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + Blueprint: soongCcLibraryStaticPreamble, + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "absolute_includes": `[ "subpackage/subsubpackage", "subpackage2", @@ -336,23 +336,23 @@ cc_library_static { } func TestCcLibraryStaticIncludeBuildDirectoryDisabled(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static include_build_directory disabled", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static include_build_directory disabled", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": "", "subpackage/subpackage_header.h": "", "subpackage/subdirectory/subdirectory_header.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", include_dirs: ["subpackage"], // still used, but local_include_dirs is recommended local_include_dirs: ["subpackage2"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "absolute_includes": `["subpackage"]`, "local_includes": `["subpackage2"]`, }), @@ -361,9 +361,9 @@ cc_library_static { } func TestCcLibraryStaticIncludeBuildDirectoryEnabled(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static include_build_directory enabled", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static include_build_directory enabled", + Filesystem: map[string]string{ // subpackage with subdirectory "subpackage/Android.bp": "", "subpackage/subpackage_header.h": "", @@ -371,15 +371,15 @@ func TestCcLibraryStaticIncludeBuildDirectoryEnabled(t *testing.T) { "subpackage2/subpackage2_header.h": "", "subpackage/subdirectory/subdirectory_header.h": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", include_dirs: ["subpackage"], // still used, but local_include_dirs is recommended local_include_dirs: ["subpackage2"], include_build_directory: true, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "absolute_includes": `["subpackage"]`, "local_includes": `[ "subpackage2", @@ -391,10 +391,10 @@ cc_library_static { } func TestCcLibraryStaticArchSpecificStaticLib(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch-specific static_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch-specific static_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "static_dep", bazel_module: { bp2build_available: false }, @@ -408,8 +408,8 @@ cc_library_static { arch: { arm64: { static_libs: ["static_dep"], whole_static_libs: ["static_dep2"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "implementation_deps": `select({ "//build/bazel/platforms/arch:arm64": [":static_dep"], "//conditions:default": [], @@ -424,10 +424,10 @@ cc_library_static { } func TestCcLibraryStaticOsSpecificStaticLib(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static os-specific static_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static os-specific static_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "static_dep", bazel_module: { bp2build_available: false }, @@ -441,8 +441,8 @@ cc_library_static { target: { android: { static_libs: ["static_dep"], whole_static_libs: ["static_dep2"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "implementation_deps": `select({ "//build/bazel/platforms/os:android": [":static_dep"], "//conditions:default": [], @@ -457,10 +457,10 @@ cc_library_static { } func TestCcLibraryStaticBaseArchOsSpecificStaticLib(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static base, arch and os-specific static_libs", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static base, arch and os-specific static_libs", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "static_dep", bazel_module: { bp2build_available: false }, @@ -485,8 +485,8 @@ cc_library_static { arch: { arm64: { static_libs: ["static_dep4"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "implementation_deps": `[":static_dep"] + select({ "//build/bazel/platforms/arch:arm64": [":static_dep4"], "//conditions:default": [], @@ -501,22 +501,22 @@ cc_library_static { } func TestCcLibraryStaticSimpleExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static simple exclude_srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static simple exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "foo-a.c": "", "foo-excluded.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "foo-*.c"], exclude_srcs: ["foo-excluded.c"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `[ "common.c", "foo-a.c", @@ -527,21 +527,21 @@ cc_library_static { } func TestCcLibraryStaticOneArchSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static one arch specific srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static one arch specific srcs", + Filesystem: map[string]string{ "common.c": "", "foo-arm.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c"], arch: { arm: { srcs: ["foo-arm.c"] } }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": ["foo-arm.c"], "//conditions:default": [], @@ -552,15 +552,15 @@ cc_library_static { } func TestCcLibraryStaticOneArchSrcsExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static one arch specific srcs and exclude_srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static one arch specific srcs and exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "for-arm.c": "", "not-for-arm.c": "", "not-for-anything.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -570,8 +570,8 @@ cc_library_static { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": ["for-arm.c"], "//conditions:default": ["not-for-arm.c"], @@ -582,16 +582,16 @@ cc_library_static { } func TestCcLibraryStaticTwoArchExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch specific exclude_srcs for 2 architectures", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch specific exclude_srcs for 2 architectures", + Filesystem: map[string]string{ "common.c": "", "for-arm.c": "", "for-x86.c": "", "not-for-arm.c": "", "not-for-x86.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -602,8 +602,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": [ "not-for-x86.c", @@ -624,9 +624,9 @@ cc_library_static { } func TestCcLibraryStaticFourArchExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch specific exclude_srcs for 4 architectures", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch specific exclude_srcs for 4 architectures", + Filesystem: map[string]string{ "common.c": "", "for-arm.c": "", "for-arm64.c": "", @@ -638,7 +638,7 @@ func TestCcLibraryStaticFourArchExcludeSrcs(t *testing.T) { "not-for-x86_64.c": "", "not-for-everything.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -651,8 +651,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": [ "not-for-arm64.c", @@ -691,14 +691,14 @@ cc_library_static { } func TestCcLibraryStaticOneArchEmpty(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static one arch empty", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static one arch empty", + Filesystem: map[string]string{ "common.cc": "", "foo-no-arm.cc": "", "foo-excluded.cc": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.cc", "foo-*.cc"], @@ -708,8 +708,8 @@ cc_library_static { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs": `["common.cc"] + select({ "//build/bazel/platforms/arch:arm": [], "//conditions:default": ["foo-no-arm.cc"], @@ -720,15 +720,15 @@ cc_library_static { } func TestCcLibraryStaticOneArchEmptyOtherSet(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static one arch empty other set", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static one arch empty other set", + Filesystem: map[string]string{ "common.cc": "", "foo-no-arm.cc": "", "x86-only.cc": "", "foo-excluded.cc": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.cc", "foo-*.cc"], @@ -739,8 +739,8 @@ cc_library_static { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs": `["common.cc"] + select({ "//build/bazel/platforms/arch:arm": [], "//build/bazel/platforms/arch:x86": [ @@ -755,10 +755,10 @@ cc_library_static { } func TestCcLibraryStaticMultipleDepSameName(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static multiple dep same name panic", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static multiple dep same name panic", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "static_dep", bazel_module: { bp2build_available: false }, @@ -768,8 +768,8 @@ cc_library_static { static_libs: ["static_dep", "static_dep"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "implementation_deps": `[":static_dep"]`, }), }, @@ -777,14 +777,14 @@ cc_library_static { } func TestCcLibraryStaticOneMultilibSrcsExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static 1 multilib srcs and exclude_srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static 1 multilib srcs and exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "for-lib32.c": "", "not-for-lib32.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -793,8 +793,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": ["for-lib32.c"], "//build/bazel/platforms/arch:x86": ["for-lib32.c"], @@ -806,16 +806,16 @@ cc_library_static { } func TestCcLibraryStaticTwoMultilibSrcsExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static 2 multilib srcs and exclude_srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static 2 multilib srcs and exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "for-lib32.c": "", "for-lib64.c": "", "not-for-lib32.c": "", "not-for-lib64.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -825,8 +825,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": [ "not-for-lib64.c", @@ -855,9 +855,9 @@ cc_library_static { } func TestCcLibrarySTaticArchMultilibSrcsExcludeSrcs(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch and multilib srcs and exclude_srcs", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch and multilib srcs and exclude_srcs", + Filesystem: map[string]string{ "common.c": "", "for-arm.c": "", "for-arm64.c": "", @@ -873,7 +873,7 @@ func TestCcLibrarySTaticArchMultilibSrcsExcludeSrcs(t *testing.T) { "not-for-lib64.c": "", "not-for-everything.c": "", }, - blueprint: soongCcLibraryStaticPreamble + ` + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c", "not-for-*.c"], @@ -890,8 +890,8 @@ cc_library_static { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `["common.c"] + select({ "//build/bazel/platforms/arch:arm": [ "not-for-arm64.c", @@ -940,8 +940,8 @@ cc_library_static { } func TestCcLibraryStaticGeneratedHeadersAllPartitions(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcLibraryStaticPreamble + ` genrule { name: "generated_hdr", cmd: "nothing to see here", @@ -961,8 +961,8 @@ cc_library_static { export_generated_headers: ["export_generated_hdr"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "export_includes": `["."]`, "local_includes": `["."]`, "hdrs": `[":export_generated_hdr"]`, @@ -984,9 +984,9 @@ cc_library_static { } func TestCcLibraryStaticArchSrcsExcludeSrcsGeneratedFiles(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch srcs/exclude_srcs with generated files", - filesystem: map[string]string{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch srcs/exclude_srcs with generated files", + Filesystem: map[string]string{ "common.cpp": "", "for-x86.cpp": "", "not-for-x86.cpp": "", @@ -997,7 +997,7 @@ func TestCcLibraryStaticArchSrcsExcludeSrcsGeneratedFiles(t *testing.T) { simpleModuleDoNotConvertBp2build("genrule", "generated_hdr_other_pkg_x86") + simpleModuleDoNotConvertBp2build("genrule", "generated_hdr_other_pkg_android"), }, - blueprint: soongCcLibraryStaticPreamble + + Blueprint: soongCcLibraryStaticPreamble + simpleModuleDoNotConvertBp2build("genrule", "generated_src") + simpleModuleDoNotConvertBp2build("genrule", "generated_src_not_x86") + simpleModuleDoNotConvertBp2build("genrule", "generated_src_android") + @@ -1029,8 +1029,8 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs": `[ "common.cpp", ":generated_src", @@ -1061,10 +1061,10 @@ cc_library_static { } func TestCcLibraryStaticGetTargetProperties(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ - description: "cc_library_static complex GetTargetProperties", - blueprint: soongCcLibraryStaticPreamble + ` + Description: "cc_library_static complex GetTargetProperties", + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", target: { @@ -1092,8 +1092,8 @@ cc_library_static { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "srcs_c": `select({ "//build/bazel/platforms/os:android": ["android_src.c"], "//conditions:default": [], @@ -1112,9 +1112,9 @@ cc_library_static { } func TestCcLibraryStaticProductVariableSelects(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static product variable selects", - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static product variable selects", + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c"], @@ -1131,8 +1131,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "copts": `select({ "//build/bazel/product_variables:binder32bit": ["-Wbinder32bit"], "//conditions:default": [], @@ -1150,10 +1150,10 @@ cc_library_static { } func TestCcLibraryStaticProductVariableArchSpecificSelects(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static arch-specific product variable selects", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static arch-specific product variable selects", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.c"], @@ -1191,8 +1191,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "copts": `select({ "//build/bazel/product_variables:malloc_not_svelte": ["-Wmalloc_not_svelte"], "//conditions:default": [], @@ -1216,10 +1216,10 @@ cc_library_static { } func TestCcLibraryStaticProductVariableStringReplacement(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static product variable string replacement", - filesystem: map[string]string{}, - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static product variable string replacement", + Filesystem: map[string]string{}, + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "foo_static", srcs: ["common.S"], @@ -1230,8 +1230,8 @@ cc_library_static { }, include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo_static", AttrNameToString{ "asflags": `select({ "//build/bazel/product_variables:platform_sdk_version": ["-DPLATFORM_SDK_VERSION=$(Platform_sdk_version)"], "//conditions:default": [], @@ -1243,17 +1243,17 @@ cc_library_static { } func TestStaticLibrary_SystemSharedLibsRootEmpty(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_lib empty root", - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_lib empty root", + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "root_empty", system_shared_libs: [], include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "root_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "root_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1261,9 +1261,9 @@ cc_library_static { } func TestStaticLibrary_SystemSharedLibsStaticEmpty(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_lib empty static default", - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_lib empty static default", + Blueprint: soongCcLibraryStaticPreamble + ` cc_defaults { name: "static_empty_defaults", static: { @@ -1276,8 +1276,8 @@ cc_library_static { defaults: ["static_empty_defaults"], } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "static_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "static_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1285,9 +1285,9 @@ cc_library_static { } func TestStaticLibrary_SystemSharedLibsBionicEmpty(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_lib empty for bionic variant", - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_lib empty for bionic variant", + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "target_bionic_empty", target: { @@ -1298,8 +1298,8 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "target_bionic_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "target_bionic_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1311,9 +1311,9 @@ func TestStaticLibrary_SystemSharedLibsLinuxBionicEmpty(t *testing.T) { // The correct behavior would be if bp2build wrote `system_dynamic_deps = []` // only for linux_bionic, but `android` had `["libc", "libdl", "libm"]. // b/195791252 tracks the fix. - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_lib empty for linux_bionic variant", - blueprint: soongCcLibraryStaticPreamble + ` + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_lib empty for linux_bionic variant", + Blueprint: soongCcLibraryStaticPreamble + ` cc_library_static { name: "target_linux_bionic_empty", target: { @@ -1324,8 +1324,8 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "target_linux_bionic_empty", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "target_linux_bionic_empty", AttrNameToString{ "system_dynamic_deps": `[]`, }), }, @@ -1333,9 +1333,9 @@ cc_library_static { } func TestStaticLibrary_SystemSharedLibsBionic(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_libs set for bionic variant", - blueprint: soongCcLibraryStaticPreamble + + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_libs set for bionic variant", + Blueprint: soongCcLibraryStaticPreamble + simpleModuleDoNotConvertBp2build("cc_library", "libc") + ` cc_library_static { name: "target_bionic", @@ -1347,8 +1347,8 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "target_bionic", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "target_bionic", AttrNameToString{ "system_dynamic_deps": `select({ "//build/bazel/platforms/os:android": [":libc"], "//build/bazel/platforms/os:linux_bionic": [":libc"], @@ -1360,9 +1360,9 @@ cc_library_static { } func TestStaticLibrary_SystemSharedLibsLinuxRootAndLinuxBionic(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_libs set for root and linux_bionic variant", - blueprint: soongCcLibraryStaticPreamble + + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_libs set for root and linux_bionic variant", + Blueprint: soongCcLibraryStaticPreamble + simpleModuleDoNotConvertBp2build("cc_library", "libc") + simpleModuleDoNotConvertBp2build("cc_library", "libm") + ` cc_library_static { @@ -1376,8 +1376,8 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "target_linux_bionic", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "target_linux_bionic", AttrNameToString{ "system_dynamic_deps": `[":libc"] + select({ "//build/bazel/platforms/os:linux_bionic": [":libm"], "//conditions:default": [], @@ -1388,9 +1388,9 @@ cc_library_static { } func TestCcLibrarystatic_SystemSharedLibUsedAsDep(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - description: "cc_library_static system_shared_lib empty for linux_bionic variant", - blueprint: soongCcLibraryStaticPreamble + + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static system_shared_lib empty for linux_bionic variant", + Blueprint: soongCcLibraryStaticPreamble + simpleModuleDoNotConvertBp2build("cc_library", "libc") + ` cc_library_static { name: "used_in_bionic_oses", @@ -1418,26 +1418,26 @@ cc_library_static { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "all", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "all", AttrNameToString{ "implementation_dynamic_deps": `select({ "//build/bazel/platforms/os:android": [], "//build/bazel/platforms/os:linux_bionic": [], "//conditions:default": [":libc"], })`, }), - makeBazelTarget("cc_library_static", "keep_for_empty_system_shared_libs", attrNameToString{ + makeBazelTarget("cc_library_static", "keep_for_empty_system_shared_libs", AttrNameToString{ "implementation_dynamic_deps": `[":libc"]`, "system_dynamic_deps": `[]`, }), - makeBazelTarget("cc_library_static", "used_in_bionic_oses", attrNameToString{}), + makeBazelTarget("cc_library_static", "used_in_bionic_oses", AttrNameToString{}), }, }) } func TestCcLibraryStaticProto(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_static { + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_static { name: "foo", srcs: ["foo.proto"], proto: { @@ -1445,12 +1445,12 @@ func TestCcLibraryStaticProto(t *testing.T) { }, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "foo_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "foo_proto", AttrNameToString{ "srcs": `["foo.proto"]`, - }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", attrNameToString{ + }), makeBazelTarget("cc_lite_proto_library", "foo_cc_proto_lite", AttrNameToString{ "deps": `[":foo_proto"]`, - }), makeBazelTarget("cc_library_static", "foo", attrNameToString{ + }), makeBazelTarget("cc_library_static", "foo", AttrNameToString{ "deps": `[":libprotobuf-cpp-lite"]`, "whole_archive_deps": `[":foo_cc_proto_lite"]`, }), @@ -1459,14 +1459,14 @@ func TestCcLibraryStaticProto(t *testing.T) { } func TestCcLibraryStaticUseVersionLib(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_static { + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_static { name: "foo", use_version_lib: true, include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo", AttrNameToString{ "use_version_lib": "True", }), }, @@ -1474,16 +1474,16 @@ func TestCcLibraryStaticUseVersionLib(t *testing.T) { } func TestCcLibraryStaticStdInFlags(t *testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - blueprint: soongCcProtoPreamble + `cc_library_static { + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Blueprint: soongCcProtoPreamble + `cc_library_static { name: "foo", cflags: ["-std=candcpp"], conlyflags: ["-std=conly"], cppflags: ["-std=cpp"], include_build_directory: false, }`, - expectedBazelTargets: []string{ - makeBazelTarget("cc_library_static", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_library_static", "foo", AttrNameToString{ "conlyflags": `["-std=conly"]`, "cppflags": `["-std=cpp"]`, }), @@ -1495,64 +1495,64 @@ func TestCcLibraryStaticStl(t *testing.T) { testCases := []struct { desc string prop string - attr attrNameToString + attr AttrNameToString }{ { desc: "c++_shared deduped to libc++", prop: `stl: "c++_shared",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"libc++"`, }, }, { desc: "libc++ to libc++", prop: `stl: "libc++",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"libc++"`, }, }, { desc: "c++_static to libc++_static", prop: `stl: "c++_static",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"libc++_static"`, }, }, { desc: "libc++_static to libc++_static", prop: `stl: "libc++_static",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"libc++_static"`, }, }, { desc: "system to system", prop: `stl: "system",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"system"`, }, }, { desc: "none to none", prop: `stl: "none",`, - attr: attrNameToString{ + attr: AttrNameToString{ "stl": `"none"`, }, }, { desc: "empty to empty", - attr: attrNameToString{}, + attr: AttrNameToString{}, }, } for _, tc := range testCases { t.Run(tc.desc, func(*testing.T) { - runCcLibraryStaticTestCase(t, bp2buildTestCase{ - blueprint: fmt.Sprintf(`cc_library_static { + runCcLibraryStaticTestCase(t, Bp2buildTestCase{ + Blueprint: fmt.Sprintf(`cc_library_static { name: "foo", include_build_directory: false, %s }`, tc.prop), - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ makeBazelTarget("cc_library_static", "foo", tc.attr), }, }) diff --git a/bp2build/cc_object_conversion_test.go b/bp2build/cc_object_conversion_test.go index 52688d9e9..37d55809a 100644 --- a/bp2build/cc_object_conversion_test.go +++ b/bp2build/cc_object_conversion_test.go @@ -26,23 +26,23 @@ func registerCcObjectModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("cc_defaults", func() android.Module { return cc.DefaultsFactory() }) } -func runCcObjectTestCase(t *testing.T, tc bp2buildTestCase) { +func runCcObjectTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "cc_object" - (&tc).moduleTypeUnderTestFactory = cc.ObjectFactory - runBp2BuildTestCase(t, registerCcObjectModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "cc_object" + (&tc).ModuleTypeUnderTestFactory = cc.ObjectFactory + RunBp2BuildTestCase(t, registerCcObjectModuleTypes, tc) } func TestCcObjectSimple(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "simple cc_object generates cc_object with include header dep", - filesystem: map[string]string{ + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "simple cc_object generates cc_object with include header dep", + Filesystem: map[string]string{ "a/b/foo.h": "", "a/b/bar.h": "", "a/b/exclude.c": "", "a/b/c.c": "", }, - blueprint: `cc_object { + Blueprint: `cc_object { name: "foo", local_include_dirs: ["include"], system_shared_libs: [], @@ -59,8 +59,8 @@ func TestCcObjectSimple(t *testing.T) { min_sdk_version: "29", } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `[ "-fno-addrsig", "-Wno-gcc-compat", @@ -73,16 +73,16 @@ func TestCcObjectSimple(t *testing.T) { ]`, "srcs": `["a/b/c.c"]`, "system_dynamic_deps": `[]`, - "sdk_version": `"current"`, - "min_sdk_version": `"29"`, + "sdk_version": `"current"`, + "min_sdk_version": `"29"`, }), }, }) } func TestCcObjectDefaults(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Blueprint: `cc_object { name: "foo", system_shared_libs: [], srcs: [ @@ -105,8 +105,8 @@ cc_defaults { ], } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `[ "-Werror", "-fno-addrsig", @@ -119,13 +119,13 @@ cc_defaults { } func TestCcObjectCcObjetDepsInObjs(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object with cc_object deps in objs props", - filesystem: map[string]string{ + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object with cc_object deps in objs props", + Filesystem: map[string]string{ "a/b/c.c": "", "x/y/z.c": "", }, - blueprint: `cc_object { + Blueprint: `cc_object { name: "foo", system_shared_libs: [], srcs: ["a/b/c.c"], @@ -140,12 +140,12 @@ cc_object { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "bar", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "bar", AttrNameToString{ "copts": `["-fno-addrsig"]`, "srcs": `["x/y/z.c"]`, "system_dynamic_deps": `[]`, - }), makeBazelTarget("cc_object", "foo", attrNameToString{ + }), makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"]`, "deps": `[":bar"]`, "srcs": `["a/b/c.c"]`, @@ -156,21 +156,21 @@ cc_object { } func TestCcObjectIncludeBuildDirFalse(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object with include_build_dir: false", - filesystem: map[string]string{ + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object with include_build_dir: false", + Filesystem: map[string]string{ "a/b/c.c": "", "x/y/z.c": "", }, - blueprint: `cc_object { + Blueprint: `cc_object { name: "foo", system_shared_libs: [], srcs: ["a/b/c.c"], include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"]`, "srcs": `["a/b/c.c"]`, "system_dynamic_deps": `[]`, @@ -180,9 +180,9 @@ func TestCcObjectIncludeBuildDirFalse(t *testing.T) { } func TestCcObjectProductVariable(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object with product variable", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object with product variable", + Blueprint: `cc_object { name: "foo", system_shared_libs: [], include_build_directory: false, @@ -194,8 +194,8 @@ func TestCcObjectProductVariable(t *testing.T) { srcs: ["src.S"], } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "asflags": `select({ "//build/bazel/product_variables:platform_sdk_version": ["-DPLATFORM_SDK_VERSION=$(Platform_sdk_version)"], "//conditions:default": [], @@ -209,9 +209,9 @@ func TestCcObjectProductVariable(t *testing.T) { } func TestCcObjectCflagsOneArch(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object setting cflags for one arch", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object setting cflags for one arch", + Blueprint: `cc_object { name: "foo", system_shared_libs: [], srcs: ["a.cpp"], @@ -226,8 +226,8 @@ func TestCcObjectCflagsOneArch(t *testing.T) { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"] + select({ "//build/bazel/platforms/arch:x86": ["-fPIC"], "//conditions:default": [], @@ -243,9 +243,9 @@ func TestCcObjectCflagsOneArch(t *testing.T) { } func TestCcObjectCflagsFourArch(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object setting cflags for 4 architectures", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object setting cflags for 4 architectures", + Blueprint: `cc_object { name: "foo", system_shared_libs: [], srcs: ["base.cpp"], @@ -270,8 +270,8 @@ func TestCcObjectCflagsFourArch(t *testing.T) { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"] + select({ "//build/bazel/platforms/arch:arm": ["-Wall"], "//build/bazel/platforms/arch:arm64": ["-Wall"], @@ -293,17 +293,17 @@ func TestCcObjectCflagsFourArch(t *testing.T) { } func TestCcObjectLinkerScript(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object setting linker_script", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object setting linker_script", + Blueprint: `cc_object { name: "foo", srcs: ["base.cpp"], linker_script: "bunny.lds", include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"]`, "linker_script": `"bunny.lds"`, "srcs": `["base.cpp"]`, @@ -313,9 +313,9 @@ func TestCcObjectLinkerScript(t *testing.T) { } func TestCcObjectDepsAndLinkerScriptSelects(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object setting deps and linker_script across archs", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object setting deps and linker_script across archs", + Blueprint: `cc_object { name: "foo", srcs: ["base.cpp"], arch: { @@ -359,8 +359,8 @@ cc_object { bazel_module: { bp2build_available: false }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"]`, "deps": `select({ "//build/bazel/platforms/arch:arm": [":arm_obj"], @@ -381,9 +381,9 @@ cc_object { } func TestCcObjectSelectOnLinuxAndBionicArchs(t *testing.T) { - runCcObjectTestCase(t, bp2buildTestCase{ - description: "cc_object setting srcs based on linux and bionic archs", - blueprint: `cc_object { + runCcObjectTestCase(t, Bp2buildTestCase{ + Description: "cc_object setting srcs based on linux and bionic archs", + Blueprint: `cc_object { name: "foo", srcs: ["base.cpp"], target: { @@ -400,8 +400,8 @@ func TestCcObjectSelectOnLinuxAndBionicArchs(t *testing.T) { include_build_directory: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("cc_object", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("cc_object", "foo", AttrNameToString{ "copts": `["-fno-addrsig"]`, "srcs": `["base.cpp"] + select({ "//build/bazel/platforms/os_arch:android_arm64": [ diff --git a/bp2build/cc_prebuilt_library_conversion_test.go b/bp2build/cc_prebuilt_library_conversion_test.go index 3cf896903..74ad0053a 100644 --- a/bp2build/cc_prebuilt_library_conversion_test.go +++ b/bp2build/cc_prebuilt_library_conversion_test.go @@ -22,24 +22,24 @@ import ( func TestPrebuiltLibraryStaticAndSharedSimple(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library static and shared simple", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library static and shared simple", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", srcs: ["libf.so"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `"libf.so"`, }), - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libf.so"`, }), }, @@ -48,15 +48,15 @@ cc_prebuilt_library { func TestPrebuiltLibraryWithArchVariance(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library with arch variance", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library with arch variance", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", arch: { @@ -65,15 +65,15 @@ cc_prebuilt_library { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `select({ "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", "//conditions:default": None, })`, }), - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `select({ "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", @@ -86,16 +86,16 @@ cc_prebuilt_library { func TestPrebuiltLibraryAdditionalAttrs(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library additional attributes", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library additional attributes", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "testdir/1/": "", "testdir/2/": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", srcs: ["libf.so"], @@ -103,14 +103,14 @@ cc_prebuilt_library { export_system_include_dirs: ["testdir/2/"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `"libf.so"`, "export_includes": `["testdir/1/"]`, "export_system_includes": `["testdir/2/"]`, }), // TODO(b/229374533): When fixed, update this test - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libf.so"`, }), }, @@ -119,15 +119,15 @@ cc_prebuilt_library { func TestPrebuiltLibrarySharedStanzaFails(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library with shared stanza fails because multiple sources", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library with shared stanza fails because multiple sources", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", srcs: ["libf.so"], @@ -136,21 +136,21 @@ cc_prebuilt_library { }, bazel_module: { bp2build_available: true }, }`, - expectedErr: fmt.Errorf("Expected at most one source file"), + ExpectedErr: fmt.Errorf("Expected at most one source file"), }) } func TestPrebuiltLibraryStaticStanzaFails(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library with static stanza fails because multiple sources", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library with static stanza fails because multiple sources", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", srcs: ["libf.so"], @@ -159,21 +159,21 @@ cc_prebuilt_library { }, bazel_module: { bp2build_available: true }, }`, - expectedErr: fmt.Errorf("Expected at most one source file"), + ExpectedErr: fmt.Errorf("Expected at most one source file"), }) } func TestPrebuiltLibrarySharedAndStaticStanzas(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library with both shared and static stanzas", - moduleTypeUnderTest: "cc_prebuilt_library", - moduleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library with both shared and static stanzas", + ModuleTypeUnderTest: "cc_prebuilt_library", + ModuleTypeUnderTestFactory: cc.PrebuiltLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library { name: "libtest", static: { @@ -184,11 +184,11 @@ cc_prebuilt_library { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `"libf.so"`, }), - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libg.so"`, }), }, diff --git a/bp2build/cc_prebuilt_library_shared_test.go b/bp2build/cc_prebuilt_library_shared_test.go index 57905e559..bcf0ce20a 100644 --- a/bp2build/cc_prebuilt_library_shared_test.go +++ b/bp2build/cc_prebuilt_library_shared_test.go @@ -9,21 +9,21 @@ import ( func TestSharedPrebuiltLibrary(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library shared simple", - moduleTypeUnderTest: "cc_prebuilt_library_shared", - moduleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library shared simple", + ModuleTypeUnderTest: "cc_prebuilt_library_shared", + ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_shared { name: "libtest", srcs: ["libf.so"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libf.so"`, }), }, @@ -32,15 +32,15 @@ cc_prebuilt_library_shared { func TestSharedPrebuiltLibraryWithArchVariance(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library shared with arch variance", - moduleTypeUnderTest: "cc_prebuilt_library_shared", - moduleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library shared with arch variance", + ModuleTypeUnderTest: "cc_prebuilt_library_shared", + ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_shared { name: "libtest", arch: { @@ -49,8 +49,8 @@ cc_prebuilt_library_shared { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_shared", "libtest", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `select({ "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", @@ -63,15 +63,15 @@ cc_prebuilt_library_shared { func TestSharedPrebuiltLibrarySharedStanzaFails(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library shared with shared stanza fails because multiple sources", - moduleTypeUnderTest: "cc_prebuilt_library_shared", - moduleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library shared with shared stanza fails because multiple sources", + ModuleTypeUnderTest: "cc_prebuilt_library_shared", + ModuleTypeUnderTestFactory: cc.PrebuiltSharedLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_shared { name: "libtest", srcs: ["libf.so"], @@ -80,6 +80,6 @@ cc_prebuilt_library_shared { }, bazel_module: { bp2build_available: true}, }`, - expectedErr: fmt.Errorf("Expected at most one source file"), + ExpectedErr: fmt.Errorf("Expected at most one source file"), }) } diff --git a/bp2build/cc_prebuilt_library_static_test.go b/bp2build/cc_prebuilt_library_static_test.go index 59839c884..7498e504c 100644 --- a/bp2build/cc_prebuilt_library_static_test.go +++ b/bp2build/cc_prebuilt_library_static_test.go @@ -22,21 +22,21 @@ import ( func TestStaticPrebuiltLibrary(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library static simple", - moduleTypeUnderTest: "cc_prebuilt_library_static", - moduleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library static simple", + ModuleTypeUnderTest: "cc_prebuilt_library_static", + ModuleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_static { name: "libtest", srcs: ["libf.so"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest", AttrNameToString{ "static_library": `"libf.so"`, }), }, @@ -45,15 +45,15 @@ cc_prebuilt_library_static { func TestStaticPrebuiltLibraryWithArchVariance(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library static with arch variance", - moduleTypeUnderTest: "cc_prebuilt_library_static", - moduleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library static with arch variance", + ModuleTypeUnderTest: "cc_prebuilt_library_static", + ModuleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_static { name: "libtest", arch: { @@ -62,8 +62,8 @@ cc_prebuilt_library_static { }, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_library_static", "libtest", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_library_static", "libtest", AttrNameToString{ "static_library": `select({ "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", @@ -76,15 +76,15 @@ cc_prebuilt_library_static { func TestStaticPrebuiltLibraryStaticStanzaFails(t *testing.T) { runBp2BuildTestCaseSimple(t, - bp2buildTestCase{ - description: "prebuilt library with static stanza fails because multiple sources", - moduleTypeUnderTest: "cc_prebuilt_library_static", - moduleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, - filesystem: map[string]string{ + Bp2buildTestCase{ + Description: "prebuilt library with static stanza fails because multiple sources", + ModuleTypeUnderTest: "cc_prebuilt_library_static", + ModuleTypeUnderTestFactory: cc.PrebuiltStaticLibraryFactory, + Filesystem: map[string]string{ "libf.so": "", "libg.so": "", }, - blueprint: ` + Blueprint: ` cc_prebuilt_library_static { name: "libtest", srcs: ["libf.so"], @@ -93,16 +93,16 @@ cc_prebuilt_library_static { }, bazel_module: { bp2build_available: true }, }`, - expectedErr: fmt.Errorf("Expected at most one source file"), + ExpectedErr: fmt.Errorf("Expected at most one source file"), }) } func TestCcLibraryStaticConvertLex(t *testing.T) { - runCcLibrarySharedTestCase(t, bp2buildTestCase{ - description: "cc_library_static with lex files", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - filesystem: map[string]string{ + runCcLibrarySharedTestCase(t, Bp2buildTestCase{ + Description: "cc_library_static with lex files", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Filesystem: map[string]string{ "foo.c": "", "bar.cc": "", "foo1.l": "", @@ -110,29 +110,29 @@ func TestCcLibraryStaticConvertLex(t *testing.T) { "foo2.l": "", "bar2.ll": "", }, - blueprint: `cc_library_static { + Blueprint: `cc_library_static { name: "foo_lib", srcs: ["foo.c", "bar.cc", "foo1.l", "foo2.l", "bar1.ll", "bar2.ll"], lex: { flags: ["--foo_flags"] }, include_build_directory: false, bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("genlex", "foo_lib_genlex_l", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("genlex", "foo_lib_genlex_l", AttrNameToString{ "srcs": `[ "foo1.l", "foo2.l", ]`, "lexopts": `["--foo_flags"]`, }), - makeBazelTarget("genlex", "foo_lib_genlex_ll", attrNameToString{ + makeBazelTarget("genlex", "foo_lib_genlex_ll", AttrNameToString{ "srcs": `[ "bar1.ll", "bar2.ll", ]`, "lexopts": `["--foo_flags"]`, }), - makeBazelTarget("cc_library_static", "foo_lib", attrNameToString{ + makeBazelTarget("cc_library_static", "foo_lib", AttrNameToString{ "srcs": `[ "bar.cc", ":foo_lib_genlex_ll", diff --git a/bp2build/filegroup_conversion_test.go b/bp2build/filegroup_conversion_test.go index b43cf5374..b598b855e 100644 --- a/bp2build/filegroup_conversion_test.go +++ b/bp2build/filegroup_conversion_test.go @@ -21,38 +21,38 @@ import ( "testing" ) -func runFilegroupTestCase(t *testing.T, tc bp2buildTestCase) { +func runFilegroupTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "filegroup" - (&tc).moduleTypeUnderTestFactory = android.FileGroupFactory - runBp2BuildTestCase(t, registerFilegroupModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "filegroup" + (&tc).ModuleTypeUnderTestFactory = android.FileGroupFactory + RunBp2BuildTestCase(t, registerFilegroupModuleTypes, tc) } func registerFilegroupModuleTypes(ctx android.RegistrationContext) {} func TestFilegroupSameNameAsFile_OneFile(t *testing.T) { - runFilegroupTestCase(t, bp2buildTestCase{ - description: "filegroup - same name as file, with one file", - filesystem: map[string]string{}, - blueprint: ` + runFilegroupTestCase(t, Bp2buildTestCase{ + Description: "filegroup - same name as file, with one file", + Filesystem: map[string]string{}, + Blueprint: ` filegroup { name: "foo", srcs: ["foo"], } `, - expectedBazelTargets: []string{}}) + ExpectedBazelTargets: []string{}}) } func TestFilegroupSameNameAsFile_MultipleFiles(t *testing.T) { - runFilegroupTestCase(t, bp2buildTestCase{ - description: "filegroup - same name as file, with multiple files", - filesystem: map[string]string{}, - blueprint: ` + runFilegroupTestCase(t, Bp2buildTestCase{ + Description: "filegroup - same name as file, with multiple files", + Filesystem: map[string]string{}, + Blueprint: ` filegroup { name: "foo", srcs: ["foo", "bar"], } `, - expectedErr: fmt.Errorf("filegroup 'foo' cannot contain a file with the same name"), + ExpectedErr: fmt.Errorf("filegroup 'foo' cannot contain a file with the same name"), }) } diff --git a/bp2build/genrule_conversion_test.go b/bp2build/genrule_conversion_test.go index 45048924e..a8bfecda0 100644 --- a/bp2build/genrule_conversion_test.go +++ b/bp2build/genrule_conversion_test.go @@ -27,11 +27,11 @@ func registerGenruleModuleTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("genrule_defaults", func() android.Module { return genrule.DefaultsFactory() }) } -func runGenruleTestCase(t *testing.T, tc bp2buildTestCase) { +func runGenruleTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "genrule" - (&tc).moduleTypeUnderTestFactory = genrule.GenRuleFactory - runBp2BuildTestCase(t, registerGenruleModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "genrule" + (&tc).ModuleTypeUnderTestFactory = genrule.GenRuleFactory + RunBp2BuildTestCase(t, registerGenruleModuleTypes, tc) } func otherGenruleBp(genruleTarget string) map[string]string { @@ -101,7 +101,7 @@ func TestGenruleCliVariableReplacement(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": fmt.Sprintf(`"$(location :foo.tool) --genDir=%s arg $(SRCS) $(OUTS)"`, tc.genDir), "outs": `["foo.out"]`, "srcs": `["foo.in"]`, @@ -113,12 +113,12 @@ func TestGenruleCliVariableReplacement(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, }) }) } @@ -169,13 +169,13 @@ func TestGenruleLocationsLabel(t *testing.T) { }` for _, tc := range testCases { - fooAttrs := attrNameToString{ + fooAttrs := AttrNameToString{ "cmd": `"$(locations :foo.tools) -s $(OUTS) $(SRCS)"`, "outs": `["foo.out"]`, "srcs": `["foo.in"]`, "tools": `[":foo.tools"]`, } - fooToolsAttrs := attrNameToString{ + fooToolsAttrs := AttrNameToString{ "cmd": `"cp $(SRCS) $(OUTS)"`, "outs": `[ "foo_tool.out", @@ -190,12 +190,12 @@ func TestGenruleLocationsLabel(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, }) }) } @@ -238,7 +238,7 @@ func TestGenruleLocationsAbsoluteLabel(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": `"$(locations //other:foo.tool) -s $(OUTS) $(SRCS)"`, "outs": `["foo.out"]`, "srcs": `["foo.in"]`, @@ -250,13 +250,13 @@ func TestGenruleLocationsAbsoluteLabel(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, - filesystem: otherGenruleBp(tc.moduleType), + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, + Filesystem: otherGenruleBp(tc.moduleType), }) }) } @@ -299,7 +299,7 @@ func TestGenruleSrcsLocationsAbsoluteLabel(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": `"$(locations //other:foo.tool) -s $(OUTS) $(location //other:other.tool)"`, "outs": `["foo.out"]`, "srcs": `["//other:other.tool"]`, @@ -311,13 +311,13 @@ func TestGenruleSrcsLocationsAbsoluteLabel(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, - filesystem: otherGenruleBp(tc.moduleType), + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, + Filesystem: otherGenruleBp(tc.moduleType), }) }) } @@ -360,7 +360,7 @@ func TestGenruleLocationLabelShouldSubstituteFirstToolLabel(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": `"$(location //other:foo.tool) -s $(OUTS) $(SRCS)"`, "outs": `["foo.out"]`, "srcs": `["foo.in"]`, @@ -375,13 +375,13 @@ func TestGenruleLocationLabelShouldSubstituteFirstToolLabel(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, - filesystem: otherGenruleBp(tc.moduleType), + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, + Filesystem: otherGenruleBp(tc.moduleType), }) }) } @@ -424,7 +424,7 @@ func TestGenruleLocationsLabelShouldSubstituteFirstToolLabel(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": `"$(locations //other:foo.tool) -s $(OUTS) $(SRCS)"`, "outs": `["foo.out"]`, "srcs": `["foo.in"]`, @@ -439,13 +439,13 @@ func TestGenruleLocationsLabelShouldSubstituteFirstToolLabel(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, - filesystem: otherGenruleBp(tc.moduleType), + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, + Filesystem: otherGenruleBp(tc.moduleType), }) }) } @@ -487,7 +487,7 @@ func TestGenruleWithoutToolsOrToolFiles(t *testing.T) { }` for _, tc := range testCases { - moduleAttrs := attrNameToString{ + moduleAttrs := AttrNameToString{ "cmd": `"cp $(SRCS) $(OUTS)"`, "outs": `["foo.out"]`, "srcs": `["foo.in"]`, @@ -498,22 +498,22 @@ func TestGenruleWithoutToolsOrToolFiles(t *testing.T) { } t.Run(tc.moduleType, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: tc.moduleType, - moduleTypeUnderTestFactory: tc.factory, - blueprint: fmt.Sprintf(bp, tc.moduleType), - expectedBazelTargets: expectedBazelTargets, + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: tc.moduleType, + ModuleTypeUnderTestFactory: tc.factory, + Blueprint: fmt.Sprintf(bp, tc.moduleType), + ExpectedBazelTargets: expectedBazelTargets, }) }) } } func TestGenruleBp2BuildInlinesDefaults(t *testing.T) { - testCases := []bp2buildTestCase{ + testCases := []Bp2buildTestCase{ { - description: "genrule applies properties from a genrule_defaults dependency if not specified", - blueprint: `genrule_defaults { + Description: "genrule applies properties from a genrule_defaults dependency if not specified", + Blueprint: `genrule_defaults { name: "gen_defaults", cmd: "do-something $(in) $(out)", } @@ -525,8 +525,8 @@ genrule { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("genrule", "gen", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("genrule", "gen", AttrNameToString{ "cmd": `"do-something $(SRCS) $(OUTS)"`, "outs": `["out"]`, "srcs": `["in1"]`, @@ -534,8 +534,8 @@ genrule { }, }, { - description: "genrule does merges properties from a genrule_defaults dependency, latest-first", - blueprint: `genrule_defaults { + Description: "genrule does merges properties from a genrule_defaults dependency, latest-first", + Blueprint: `genrule_defaults { name: "gen_defaults", out: ["out-from-defaults"], srcs: ["in-from-defaults"], @@ -550,8 +550,8 @@ genrule { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("genrule", "gen", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("genrule", "gen", AttrNameToString{ "cmd": `"do-something $(SRCS) $(OUTS)"`, "outs": `[ "out-from-defaults", @@ -565,8 +565,8 @@ genrule { }, }, { - description: "genrule applies properties from list of genrule_defaults", - blueprint: `genrule_defaults { + Description: "genrule applies properties from list of genrule_defaults", + Blueprint: `genrule_defaults { name: "gen_defaults1", cmd: "cp $(in) $(out)", } @@ -583,8 +583,8 @@ genrule { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("genrule", "gen", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("genrule", "gen", AttrNameToString{ "cmd": `"cp $(SRCS) $(OUTS)"`, "outs": `["out"]`, "srcs": `["in1"]`, @@ -592,8 +592,8 @@ genrule { }, }, { - description: "genrule applies properties from genrule_defaults transitively", - blueprint: `genrule_defaults { + Description: "genrule applies properties from genrule_defaults transitively", + Blueprint: `genrule_defaults { name: "gen_defaults1", defaults: ["gen_defaults2"], cmd: "cmd1 $(in) $(out)", // overrides gen_defaults2's cmd property value. @@ -620,8 +620,8 @@ genrule { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTargetNoRestrictions("genrule", "gen", attrNameToString{ + ExpectedBazelTargets: []string{ + MakeBazelTargetNoRestrictions("genrule", "gen", AttrNameToString{ "cmd": `"cmd1 $(SRCS) $(OUTS)"`, "outs": `[ "out-from-3", @@ -638,7 +638,7 @@ genrule { } for _, testCase := range testCases { - t.Run(testCase.description, func(t *testing.T) { + t.Run(testCase.Description, func(t *testing.T) { runGenruleTestCase(t, testCase) }) } diff --git a/bp2build/gensrcs_conversion_test.go b/bp2build/gensrcs_conversion_test.go index 76826631a..4845973d8 100644 --- a/bp2build/gensrcs_conversion_test.go +++ b/bp2build/gensrcs_conversion_test.go @@ -24,7 +24,7 @@ func TestGensrcs(t *testing.T) { testcases := []struct { name string bp string - expectedBazelAttrs attrNameToString + expectedBazelAttrs AttrNameToString }{ { name: "gensrcs with common usage of properties", @@ -37,7 +37,7 @@ func TestGensrcs(t *testing.T) { output_extension: "out", bazel_module: { bp2build_available: true }, }`, - expectedBazelAttrs: attrNameToString{ + expectedBazelAttrs: AttrNameToString{ "srcs": `[ "test/input.txt", ":external_files__BP2BUILD__MISSING__DEP", @@ -56,7 +56,7 @@ func TestGensrcs(t *testing.T) { cmd: "cat $(in) > $(out)", bazel_module: { bp2build_available: true }, }`, - expectedBazelAttrs: attrNameToString{ + expectedBazelAttrs: AttrNameToString{ "srcs": `["input.txt"]`, "cmd": `"cat $(SRC) > $(OUT)"`, }, @@ -65,15 +65,15 @@ func TestGensrcs(t *testing.T) { for _, test := range testcases { expectedBazelTargets := []string{ - makeBazelTargetNoRestrictions("gensrcs", "foo", test.expectedBazelAttrs), + MakeBazelTargetNoRestrictions("gensrcs", "foo", test.expectedBazelAttrs), } t.Run(test.name, func(t *testing.T) { - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, - bp2buildTestCase{ - moduleTypeUnderTest: "gensrcs", - moduleTypeUnderTestFactory: genrule.GenSrcsFactory, - blueprint: test.bp, - expectedBazelTargets: expectedBazelTargets, + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, + Bp2buildTestCase{ + ModuleTypeUnderTest: "gensrcs", + ModuleTypeUnderTestFactory: genrule.GenSrcsFactory, + Blueprint: test.bp, + ExpectedBazelTargets: expectedBazelTargets, }) }) } diff --git a/bp2build/java_binary_host_conversion_test.go b/bp2build/java_binary_host_conversion_test.go index d7a76a89f..50ea542b7 100644 --- a/bp2build/java_binary_host_conversion_test.go +++ b/bp2build/java_binary_host_conversion_test.go @@ -22,11 +22,11 @@ import ( "android/soong/java" ) -func runJavaBinaryHostTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaBinaryHostTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "java_binary_host" - (&tc).moduleTypeUnderTestFactory = java.BinaryHostFactory - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) { + (&tc).ModuleTypeUnderTest = "java_binary_host" + (&tc).ModuleTypeUnderTestFactory = java.BinaryHostFactory + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("cc_library_host_shared", cc.LibraryHostSharedFactory) ctx.RegisterModuleType("java_library", java.LibraryFactory) }, tc) @@ -41,10 +41,10 @@ var fs = map[string]string{ } func TestJavaBinaryHost(t *testing.T) { - runJavaBinaryHostTestCase(t, bp2buildTestCase{ - description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.", - filesystem: fs, - blueprint: `java_binary_host { + runJavaBinaryHostTestCase(t, Bp2buildTestCase{ + Description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.", + Filesystem: fs, + Blueprint: `java_binary_host { name: "java-binary-host-1", srcs: ["a.java", "b.java"], exclude_srcs: ["b.java"], @@ -54,8 +54,8 @@ func TestJavaBinaryHost(t *testing.T) { bazel_module: { bp2build_available: true }, java_version: "8", }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_binary", "java-binary-host-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_binary", "java-binary-host-1", AttrNameToString{ "srcs": `["a.java"]`, "main_class": `"com.android.test.MainClass"`, "deps": `["//other:jni-lib-1"]`, @@ -74,10 +74,10 @@ func TestJavaBinaryHost(t *testing.T) { } func TestJavaBinaryHostRuntimeDeps(t *testing.T) { - runJavaBinaryHostTestCase(t, bp2buildTestCase{ - description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.", - filesystem: fs, - blueprint: `java_binary_host { + runJavaBinaryHostTestCase(t, Bp2buildTestCase{ + Description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.", + Filesystem: fs, + Blueprint: `java_binary_host { name: "java-binary-host-1", static_libs: ["java-dep-1"], manifest: "test.mf", @@ -90,8 +90,8 @@ java_library { bazel_module: { bp2build_available: false }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("java_binary", "java-binary-host-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_binary", "java-binary-host-1", AttrNameToString{ "main_class": `"com.android.test.MainClass"`, "runtime_deps": `[":java-dep-1"]`, "target_compatible_with": `select({ diff --git a/bp2build/java_import_conversion_test.go b/bp2build/java_import_conversion_test.go index 0b3191c32..707ecce91 100644 --- a/bp2build/java_import_conversion_test.go +++ b/bp2build/java_import_conversion_test.go @@ -21,45 +21,45 @@ import ( "testing" ) -func runJavaImportTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaImportTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerJavaImportModuleTypes, tc) + RunBp2BuildTestCase(t, registerJavaImportModuleTypes, tc) } func registerJavaImportModuleTypes(ctx android.RegistrationContext) { } func TestJavaImportMinimal(t *testing.T) { - runJavaImportTestCase(t, bp2buildTestCase{ - description: "Java import - simple example", - moduleTypeUnderTest: "java_import", - moduleTypeUnderTestFactory: java.ImportFactory, - filesystem: map[string]string{ + runJavaImportTestCase(t, Bp2buildTestCase{ + Description: "Java import - simple example", + ModuleTypeUnderTest: "java_import", + ModuleTypeUnderTestFactory: java.ImportFactory, + Filesystem: map[string]string{ "import.jar": "", }, - blueprint: ` + Blueprint: ` java_import { name: "example_import", jars: ["import.jar"], bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("java_import", "example_import", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_import", "example_import", AttrNameToString{ "jars": `["import.jar"]`, }), }}) } func TestJavaImportArchVariant(t *testing.T) { - runJavaImportTestCase(t, bp2buildTestCase{ - description: "Java import - simple example", - moduleTypeUnderTest: "java_import", - moduleTypeUnderTestFactory: java.ImportFactory, - filesystem: map[string]string{ + runJavaImportTestCase(t, Bp2buildTestCase{ + Description: "Java import - simple example", + ModuleTypeUnderTest: "java_import", + ModuleTypeUnderTestFactory: java.ImportFactory, + Filesystem: map[string]string{ "import.jar": "", }, - blueprint: ` + Blueprint: ` java_import { name: "example_import", target: { @@ -73,8 +73,8 @@ java_import { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("java_import", "example_import", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_import", "example_import", AttrNameToString{ "jars": `select({ "//build/bazel/platforms/os:android": ["android.jar"], "//build/bazel/platforms/os:linux": ["linux.jar"], diff --git a/bp2build/java_library_conversion_test.go b/bp2build/java_library_conversion_test.go index e4d9cbcac..7fa19d950 100644 --- a/bp2build/java_library_conversion_test.go +++ b/bp2build/java_library_conversion_test.go @@ -22,22 +22,22 @@ import ( "android/soong/java" ) -func runJavaLibraryTestCaseWithRegistrationCtxFunc(t *testing.T, tc bp2buildTestCase, registrationCtxFunc func(ctx android.RegistrationContext)) { +func runJavaLibraryTestCaseWithRegistrationCtxFunc(t *testing.T, tc Bp2buildTestCase, registrationCtxFunc func(ctx android.RegistrationContext)) { t.Helper() - (&tc).moduleTypeUnderTest = "java_library" - (&tc).moduleTypeUnderTestFactory = java.LibraryFactory - runBp2BuildTestCase(t, registrationCtxFunc, tc) + (&tc).ModuleTypeUnderTest = "java_library" + (&tc).ModuleTypeUnderTestFactory = java.LibraryFactory + RunBp2BuildTestCase(t, registrationCtxFunc, tc) } -func runJavaLibraryTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaLibraryTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() runJavaLibraryTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) {}) } func TestJavaLibrary(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - description: "java_library with srcs, exclude_srcs and libs", - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Description: "java_library with srcs, exclude_srcs and libs", + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java", "b.java"], exclude_srcs: ["b.java"], @@ -50,12 +50,12 @@ java_library { srcs: ["b.java"], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "srcs": `["a.java"]`, "deps": `[":java-lib-2"]`, }), - makeBazelTarget("java_library", "java-lib-2", attrNameToString{ + makeBazelTarget("java_library", "java-lib-2", AttrNameToString{ "srcs": `["b.java"]`, }), }, @@ -63,8 +63,8 @@ java_library { } func TestJavaLibraryConvertsStaticLibsToDepsAndExports(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java"], libs: ["java-lib-2"], @@ -83,8 +83,8 @@ java_library { srcs: ["c.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "srcs": `["a.java"]`, "deps": `[ ":java-lib-2", @@ -97,8 +97,8 @@ java_library { } func TestJavaLibraryConvertsStaticLibsToExportsIfNoSrcs(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", static_libs: ["java-lib-2"], bazel_module: { bp2build_available: true }, @@ -109,8 +109,8 @@ java_library { srcs: ["a.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "exports": `[":java-lib-2"]`, }), }, @@ -118,9 +118,9 @@ java_library { } func TestJavaLibraryFailsToConvertLibsWithNoSrcs(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - expectedErr: fmt.Errorf("Module has direct dependencies but no sources. Bazel will not allow this."), - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + ExpectedErr: fmt.Errorf("Module has direct dependencies but no sources. Bazel will not allow this."), + Blueprint: `java_library { name: "java-lib-1", libs: ["java-lib-2"], bazel_module: { bp2build_available: true }, @@ -131,13 +131,13 @@ java_library { srcs: ["a.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{}, + ExpectedBazelTargets: []string{}, }) } func TestJavaLibraryPlugins(t *testing.T) { - runJavaLibraryTestCaseWithRegistrationCtxFunc(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", plugins: ["java-plugin-1"], bazel_module: { bp2build_available: true }, @@ -148,8 +148,8 @@ java_plugin { srcs: ["a.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "plugins": `[":java-plugin-1"]`, }), }, @@ -159,14 +159,14 @@ java_plugin { } func TestJavaLibraryJavaVersion(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java"], java_version: "11", }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "srcs": `["a.java"]`, "javacopts": `["-source 11 -target 11"]`, }), @@ -175,8 +175,8 @@ func TestJavaLibraryJavaVersion(t *testing.T) { } func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java"], javacflags: ["-Xsuper-fast"], @@ -185,8 +185,8 @@ func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) { javacflags: ["-Xep:SpeedLimit:OFF"], }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "javacopts": `[ "-Xsuper-fast", "-Xep:SpeedLimit:OFF", @@ -198,8 +198,8 @@ func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) { } func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledByDefault(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java"], javacflags: ["-Xsuper-fast"], @@ -207,8 +207,8 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledByDefault(t *testing.T javacflags: ["-Xep:SpeedLimit:OFF"], }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "javacopts": `["-Xsuper-fast"]`, "srcs": `["a.java"]`, }), @@ -217,8 +217,8 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledByDefault(t *testing.T } func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { name: "java-lib-1", srcs: ["a.java"], javacflags: ["-Xsuper-fast"], @@ -227,8 +227,8 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T) javacflags: ["-Xep:SpeedLimit:OFF"], }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "javacopts": `["-Xsuper-fast"]`, "srcs": `["a.java"]`, }), @@ -237,11 +237,11 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T) } func TestJavaLibraryLogTags(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - description: "Java library - logtags creates separate dependency", - moduleTypeUnderTest: "java_library", - moduleTypeUnderTestFactory: java.LibraryFactory, - blueprint: `java_library { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Description: "Java library - logtags creates separate dependency", + ModuleTypeUnderTest: "java_library", + ModuleTypeUnderTestFactory: java.LibraryFactory, + Blueprint: `java_library { name: "example_lib", srcs: [ "a.java", @@ -251,14 +251,14 @@ func TestJavaLibraryLogTags(t *testing.T) { ], bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("event_log_tags", "example_lib_logtags", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("event_log_tags", "example_lib_logtags", AttrNameToString{ "srcs": `[ "a.logtag", "b.logtag", ]`, }), - makeBazelTarget("java_library", "example_lib", attrNameToString{ + makeBazelTarget("java_library", "example_lib", AttrNameToString{ "srcs": `[ "a.java", "b.java", @@ -269,18 +269,18 @@ func TestJavaLibraryLogTags(t *testing.T) { } func TestJavaLibraryResources(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - filesystem: map[string]string{ + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Filesystem: map[string]string{ "res/a.res": "", "res/b.res": "", "res/dir1/b.res": "", }, - blueprint: `java_library { + Blueprint: `java_library { name: "java-lib-1", java_resources: ["res/a.res", "res/b.res"], }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "resources": `[ "res/a.res", "res/b.res", @@ -291,18 +291,18 @@ func TestJavaLibraryResources(t *testing.T) { } func TestJavaLibraryResourceDirs(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - filesystem: map[string]string{ + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Filesystem: map[string]string{ "res/a.res": "", "res/b.res": "", "res/dir1/b.res": "", }, - blueprint: `java_library { + Blueprint: `java_library { name: "java-lib-1", java_resource_dirs: ["res"], }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "resource_strip_prefix": `"res"`, "resources": `[ "res/a.res", @@ -315,18 +315,18 @@ func TestJavaLibraryResourceDirs(t *testing.T) { } func TestJavaLibraryResourcesExcludeDir(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - filesystem: map[string]string{ + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Filesystem: map[string]string{ "res/a.res": "", "res/exclude/b.res": "", }, - blueprint: `java_library { + Blueprint: `java_library { name: "java-lib-1", java_resource_dirs: ["res"], exclude_java_resource_dirs: ["res/exclude"], }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "resource_strip_prefix": `"res"`, "resources": `["res/a.res"]`, }), @@ -335,19 +335,19 @@ func TestJavaLibraryResourcesExcludeDir(t *testing.T) { } func TestJavaLibraryResourcesExcludeFile(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - filesystem: map[string]string{ + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Filesystem: map[string]string{ "res/a.res": "", "res/dir1/b.res": "", "res/dir1/exclude.res": "", }, - blueprint: `java_library { + Blueprint: `java_library { name: "java-lib-1", java_resource_dirs: ["res"], exclude_java_resources: ["res/dir1/exclude.res"], }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "resource_strip_prefix": `"res"`, "resources": `[ "res/a.res", @@ -359,16 +359,16 @@ func TestJavaLibraryResourcesExcludeFile(t *testing.T) { } func TestJavaLibraryResourcesFailsWithMultipleDirs(t *testing.T) { - runJavaLibraryTestCase(t, bp2buildTestCase{ - filesystem: map[string]string{ + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Filesystem: map[string]string{ "res/a.res": "", "res1/a.res": "", }, - blueprint: `java_library { + Blueprint: `java_library { name: "java-lib-1", java_resource_dirs: ["res", "res1"], }`, - expectedErr: fmt.Errorf("bp2build does not support more than one directory in java_resource_dirs (b/226423379)"), - expectedBazelTargets: []string{}, + ExpectedErr: fmt.Errorf("bp2build does not support more than one directory in java_resource_dirs (b/226423379)"), + ExpectedBazelTargets: []string{}, }) } diff --git a/bp2build/java_library_host_conversion_test.go b/bp2build/java_library_host_conversion_test.go index 83cc5519a..1dcf16337 100644 --- a/bp2build/java_library_host_conversion_test.go +++ b/bp2build/java_library_host_conversion_test.go @@ -21,17 +21,17 @@ import ( "android/soong/java" ) -func runJavaLibraryHostTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaLibraryHostTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "java_library_host" - (&tc).moduleTypeUnderTestFactory = java.LibraryHostFactory - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) + (&tc).ModuleTypeUnderTest = "java_library_host" + (&tc).ModuleTypeUnderTestFactory = java.LibraryHostFactory + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) } func TestJavaLibraryHost(t *testing.T) { - runJavaLibraryHostTestCase(t, bp2buildTestCase{ - description: "java_library_host with srcs, exclude_srcs and libs", - blueprint: `java_library_host { + runJavaLibraryHostTestCase(t, Bp2buildTestCase{ + Description: "java_library_host with srcs, exclude_srcs and libs", + Blueprint: `java_library_host { name: "java-lib-host-1", srcs: ["a.java", "b.java"], exclude_srcs: ["b.java"], @@ -45,8 +45,8 @@ java_library_host { bazel_module: { bp2build_available: true }, java_version: "9", }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_library", "java-lib-host-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_library", "java-lib-host-1", AttrNameToString{ "srcs": `["a.java"]`, "deps": `[":java-lib-host-2"]`, "target_compatible_with": `select({ @@ -54,7 +54,7 @@ java_library_host { "//conditions:default": [], })`, }), - makeBazelTarget("java_library", "java-lib-host-2", attrNameToString{ + makeBazelTarget("java_library", "java-lib-host-2", AttrNameToString{ "javacopts": `["-source 1.9 -target 1.9"]`, "srcs": `["c.java"]`, "target_compatible_with": `select({ diff --git a/bp2build/java_plugin_conversion_test.go b/bp2build/java_plugin_conversion_test.go index dc763e763..2d2e5ff5d 100644 --- a/bp2build/java_plugin_conversion_test.go +++ b/bp2build/java_plugin_conversion_test.go @@ -21,19 +21,19 @@ import ( "android/soong/java" ) -func runJavaPluginTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaPluginTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "java_plugin" - (&tc).moduleTypeUnderTestFactory = java.PluginFactory - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) { + (&tc).ModuleTypeUnderTest = "java_plugin" + (&tc).ModuleTypeUnderTestFactory = java.PluginFactory + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("java_library", java.LibraryFactory) }, tc) } func TestJavaPlugin(t *testing.T) { - runJavaPluginTestCase(t, bp2buildTestCase{ - description: "java_plugin with srcs, libs, static_libs", - blueprint: `java_plugin { + runJavaPluginTestCase(t, Bp2buildTestCase{ + Description: "java_plugin with srcs, libs, static_libs", + Blueprint: `java_plugin { name: "java-plug-1", srcs: ["a.java", "b.java"], libs: ["java-lib-1"], @@ -53,8 +53,8 @@ java_library { srcs: ["c.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_plugin", "java-plug-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_plugin", "java-plug-1", AttrNameToString{ "target_compatible_with": `select({ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], "//conditions:default": [], @@ -74,9 +74,9 @@ java_library { } func TestJavaPluginNoSrcs(t *testing.T) { - runJavaPluginTestCase(t, bp2buildTestCase{ - description: "java_plugin without srcs converts (static) libs to deps", - blueprint: `java_plugin { + runJavaPluginTestCase(t, Bp2buildTestCase{ + Description: "java_plugin without srcs converts (static) libs to deps", + Blueprint: `java_plugin { name: "java-plug-1", libs: ["java-lib-1"], static_libs: ["java-lib-2"], @@ -94,8 +94,8 @@ java_library { srcs: ["c.java"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("java_plugin", "java-plug-1", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("java_plugin", "java-plug-1", AttrNameToString{ "target_compatible_with": `select({ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], "//conditions:default": [], diff --git a/bp2build/java_proto_conversion_test.go b/bp2build/java_proto_conversion_test.go index c6feeb8dc..6465641f0 100644 --- a/bp2build/java_proto_conversion_test.go +++ b/bp2build/java_proto_conversion_test.go @@ -22,11 +22,11 @@ import ( "android/soong/java" ) -func runJavaProtoTestCase(t *testing.T, tc bp2buildTestCase) { +func runJavaProtoTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "java_library_static" - (&tc).moduleTypeUnderTestFactory = java.LibraryFactory - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) + (&tc).ModuleTypeUnderTest = "java_library_static" + (&tc).ModuleTypeUnderTestFactory = java.LibraryFactory + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) } func TestJavaProto(t *testing.T) { @@ -70,25 +70,25 @@ func TestJavaProto(t *testing.T) { srcs: ["a.proto"], }` - protoLibrary := makeBazelTarget("proto_library", "java-protos_proto", attrNameToString{ + protoLibrary := makeBazelTarget("proto_library", "java-protos_proto", AttrNameToString{ "srcs": `["a.proto"]`, }) for _, tc := range testCases { javaLibraryName := fmt.Sprintf("java-protos_%s", tc.javaLibraryNameExtension) - runJavaProtoTestCase(t, bp2buildTestCase{ - description: fmt.Sprintf("java_proto %s", tc.protoType), - blueprint: fmt.Sprintf(bp, tc.protoType), - expectedBazelTargets: []string{ + runJavaProtoTestCase(t, Bp2buildTestCase{ + Description: fmt.Sprintf("java_proto %s", tc.protoType), + Blueprint: fmt.Sprintf(bp, tc.protoType), + ExpectedBazelTargets: []string{ protoLibrary, makeBazelTarget( tc.javaLibraryType, javaLibraryName, - attrNameToString{ + AttrNameToString{ "deps": `[":java-protos_proto"]`, }), - makeBazelTarget("java_library", "java-protos", attrNameToString{ + makeBazelTarget("java_library", "java-protos", AttrNameToString{ "exports": fmt.Sprintf(`[":%s"]`, javaLibraryName), }), }, @@ -97,25 +97,25 @@ func TestJavaProto(t *testing.T) { } func TestJavaProtoDefault(t *testing.T) { - runJavaProtoTestCase(t, bp2buildTestCase{ - description: "java_library proto default", - blueprint: `java_library_static { + runJavaProtoTestCase(t, Bp2buildTestCase{ + Description: "java_library proto default", + Blueprint: `java_library_static { name: "java-protos", srcs: ["a.proto"], java_version: "7", } `, - expectedBazelTargets: []string{ - makeBazelTarget("proto_library", "java-protos_proto", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("proto_library", "java-protos_proto", AttrNameToString{ "srcs": `["a.proto"]`, }), makeBazelTarget( "java_lite_proto_library", "java-protos_java_proto_lite", - attrNameToString{ + AttrNameToString{ "deps": `[":java-protos_proto"]`, }), - makeBazelTarget("java_library", "java-protos", attrNameToString{ + makeBazelTarget("java_library", "java-protos", AttrNameToString{ "exports": `[":java-protos_java_proto_lite"]`, "javacopts": `["-source 1.7 -target 1.7"]`, }), diff --git a/bp2build/linker_config_conversion_test.go b/bp2build/linker_config_conversion_test.go index 4662af4c1..3b8a36355 100644 --- a/bp2build/linker_config_conversion_test.go +++ b/bp2build/linker_config_conversion_test.go @@ -21,23 +21,23 @@ import ( "android/soong/linkerconfig" ) -func runLinkerConfigTestCase(t *testing.T, tc bp2buildTestCase) { +func runLinkerConfigTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "linker_config" - (&tc).moduleTypeUnderTestFactory = linkerconfig.LinkerConfigFactory + (&tc).ModuleTypeUnderTest = "linker_config" + (&tc).ModuleTypeUnderTestFactory = linkerconfig.LinkerConfigFactory runBp2BuildTestCaseSimple(t, tc) } func TestLinkerConfigConvertsSrc(t *testing.T) { runLinkerConfigTestCase(t, - bp2buildTestCase{ - blueprint: ` + Bp2buildTestCase{ + Blueprint: ` linker_config { name: "foo", src: "a.json", } `, - expectedBazelTargets: []string{makeBazelTarget("linker_config", "foo", attrNameToString{ + ExpectedBazelTargets: []string{makeBazelTarget("linker_config", "foo", AttrNameToString{ "src": `"a.json"`, })}, }) @@ -46,14 +46,14 @@ linker_config { func TestLinkerConfigNoSrc(t *testing.T) { runLinkerConfigTestCase(t, - bp2buildTestCase{ - blueprint: ` + Bp2buildTestCase{ + Blueprint: ` linker_config { name: "foo", } `, - expectedBazelTargets: []string{}, - expectedErr: fmt.Errorf("Android.bp:2:1: module \"foo\": src: empty src is not supported"), + ExpectedBazelTargets: []string{}, + ExpectedErr: fmt.Errorf("Android.bp:2:1: module \"foo\": src: empty src is not supported"), }) } diff --git a/bp2build/prebuilt_etc_conversion_test.go b/bp2build/prebuilt_etc_conversion_test.go index 2e4b22119..fce4c745b 100644 --- a/bp2build/prebuilt_etc_conversion_test.go +++ b/bp2build/prebuilt_etc_conversion_test.go @@ -21,21 +21,21 @@ import ( "testing" ) -func runPrebuiltEtcTestCase(t *testing.T, tc bp2buildTestCase) { +func runPrebuiltEtcTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "prebuilt_etc" - (&tc).moduleTypeUnderTestFactory = etc.PrebuiltEtcFactory - runBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "prebuilt_etc" + (&tc).ModuleTypeUnderTestFactory = etc.PrebuiltEtcFactory + RunBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc) } func registerPrebuiltEtcModuleTypes(ctx android.RegistrationContext) { } func TestPrebuiltEtcSimple(t *testing.T) { - runPrebuiltEtcTestCase(t, bp2buildTestCase{ - description: "prebuilt_etc - simple example", - filesystem: map[string]string{}, - blueprint: ` + runPrebuiltEtcTestCase(t, Bp2buildTestCase{ + Description: "prebuilt_etc - simple example", + Filesystem: map[string]string{}, + Blueprint: ` prebuilt_etc { name: "apex_tz_version", src: "version/tz_version", @@ -44,8 +44,8 @@ prebuilt_etc { installable: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_file", "apex_tz_version", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_file", "apex_tz_version", AttrNameToString{ "filename": `"tz_version"`, "installable": `False`, "src": `"version/tz_version"`, @@ -54,10 +54,10 @@ prebuilt_etc { } func TestPrebuiltEtcArchVariant(t *testing.T) { - runPrebuiltEtcTestCase(t, bp2buildTestCase{ - description: "prebuilt_etc - arch variant", - filesystem: map[string]string{}, - blueprint: ` + runPrebuiltEtcTestCase(t, Bp2buildTestCase{ + Description: "prebuilt_etc - arch variant", + Filesystem: map[string]string{}, + Blueprint: ` prebuilt_etc { name: "apex_tz_version", src: "version/tz_version", @@ -74,8 +74,8 @@ prebuilt_etc { } } `, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_file", "apex_tz_version", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_file", "apex_tz_version", AttrNameToString{ "filename": `"tz_version"`, "installable": `False`, "src": `select({ @@ -88,10 +88,10 @@ prebuilt_etc { } func TestPrebuiltEtcArchAndTargetVariant(t *testing.T) { - runPrebuiltEtcTestCase(t, bp2buildTestCase{ - description: "prebuilt_etc - arch variant", - filesystem: map[string]string{}, - blueprint: ` + runPrebuiltEtcTestCase(t, Bp2buildTestCase{ + Description: "prebuilt_etc - arch variant", + Filesystem: map[string]string{}, + Blueprint: ` prebuilt_etc { name: "apex_tz_version", src: "version/tz_version", @@ -113,8 +113,8 @@ prebuilt_etc { }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_file", "apex_tz_version", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_file", "apex_tz_version", AttrNameToString{ "filename": `"tz_version"`, "installable": `False`, "src": `select({ @@ -129,21 +129,21 @@ prebuilt_etc { })}}) } -func runPrebuiltUsrShareTestCase(t *testing.T, tc bp2buildTestCase) { +func runPrebuiltUsrShareTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - (&tc).moduleTypeUnderTest = "prebuilt_usr_share" - (&tc).moduleTypeUnderTestFactory = etc.PrebuiltUserShareFactory - runBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc) + (&tc).ModuleTypeUnderTest = "prebuilt_usr_share" + (&tc).ModuleTypeUnderTestFactory = etc.PrebuiltUserShareFactory + RunBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc) } func registerPrebuiltUsrShareModuleTypes(ctx android.RegistrationContext) { } func TestPrebuiltUsrShareSimple(t *testing.T) { - runPrebuiltUsrShareTestCase(t, bp2buildTestCase{ - description: "prebuilt_usr_share - simple example", - filesystem: map[string]string{}, - blueprint: ` + runPrebuiltUsrShareTestCase(t, Bp2buildTestCase{ + Description: "prebuilt_usr_share - simple example", + Filesystem: map[string]string{}, + Blueprint: ` prebuilt_usr_share { name: "apex_tz_version", src: "version/tz_version", @@ -152,8 +152,8 @@ prebuilt_usr_share { installable: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_file", "apex_tz_version", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_file", "apex_tz_version", AttrNameToString{ "filename": `"tz_version"`, "installable": `False`, "src": `"version/tz_version"`, @@ -162,10 +162,10 @@ prebuilt_usr_share { } func TestPrebuiltEtcNoSubdir(t *testing.T) { - runPrebuiltEtcTestCase(t, bp2buildTestCase{ - description: "prebuilt_etc - no subdir", - filesystem: map[string]string{}, - blueprint: ` + runPrebuiltEtcTestCase(t, Bp2buildTestCase{ + Description: "prebuilt_etc - no subdir", + Filesystem: map[string]string{}, + Blueprint: ` prebuilt_etc { name: "apex_tz_version", src: "version/tz_version", @@ -173,8 +173,8 @@ prebuilt_etc { installable: false, } `, - expectedBazelTargets: []string{ - makeBazelTarget("prebuilt_file", "apex_tz_version", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("prebuilt_file", "apex_tz_version", AttrNameToString{ "filename": `"tz_version"`, "installable": `False`, "src": `"version/tz_version"`, diff --git a/bp2build/python_binary_conversion_test.go b/bp2build/python_binary_conversion_test.go index 22bd028e7..79da5d597 100644 --- a/bp2build/python_binary_conversion_test.go +++ b/bp2build/python_binary_conversion_test.go @@ -7,27 +7,27 @@ import ( "android/soong/python" ) -func runBp2BuildTestCaseWithPythonLibraries(t *testing.T, tc bp2buildTestCase) { +func runBp2BuildTestCaseWithPythonLibraries(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) { + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("python_library", python.PythonLibraryFactory) ctx.RegisterModuleType("python_library_host", python.PythonLibraryHostFactory) }, tc) } func TestPythonBinaryHostSimple(t *testing.T) { - runBp2BuildTestCaseWithPythonLibraries(t, bp2buildTestCase{ - description: "simple python_binary_host converts to a native py_binary", - moduleTypeUnderTest: "python_binary_host", - moduleTypeUnderTestFactory: python.PythonBinaryHostFactory, - filesystem: map[string]string{ + runBp2BuildTestCaseWithPythonLibraries(t, Bp2buildTestCase{ + Description: "simple python_binary_host converts to a native py_binary", + ModuleTypeUnderTest: "python_binary_host", + ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory, + Filesystem: map[string]string{ "a.py": "", "b/c.py": "", "b/d.py": "", "b/e.py": "", "files/data.txt": "", }, - blueprint: `python_binary_host { + Blueprint: `python_binary_host { name: "foo", main: "a.py", srcs: ["**/*.py"], @@ -41,8 +41,8 @@ func TestPythonBinaryHostSimple(t *testing.T) { srcs: ["b/e.py"], bazel_module: { bp2build_available: false }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("py_binary", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("py_binary", "foo", AttrNameToString{ "data": `["files/data.txt"]`, "deps": `[":bar"]`, "main": `"a.py"`, @@ -62,11 +62,11 @@ func TestPythonBinaryHostSimple(t *testing.T) { } func TestPythonBinaryHostPy2(t *testing.T) { - runBp2BuildTestCaseSimple(t, bp2buildTestCase{ - description: "py2 python_binary_host", - moduleTypeUnderTest: "python_binary_host", - moduleTypeUnderTestFactory: python.PythonBinaryHostFactory, - blueprint: `python_binary_host { + runBp2BuildTestCaseSimple(t, Bp2buildTestCase{ + Description: "py2 python_binary_host", + ModuleTypeUnderTest: "python_binary_host", + ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory, + Blueprint: `python_binary_host { name: "foo", srcs: ["a.py"], version: { @@ -81,8 +81,8 @@ func TestPythonBinaryHostPy2(t *testing.T) { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ - makeBazelTarget("py_binary", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("py_binary", "foo", AttrNameToString{ "python_version": `"PY2"`, "imports": `["."]`, "srcs": `["a.py"]`, @@ -96,11 +96,11 @@ func TestPythonBinaryHostPy2(t *testing.T) { } func TestPythonBinaryHostPy3(t *testing.T) { - runBp2BuildTestCaseSimple(t, bp2buildTestCase{ - description: "py3 python_binary_host", - moduleTypeUnderTest: "python_binary_host", - moduleTypeUnderTestFactory: python.PythonBinaryHostFactory, - blueprint: `python_binary_host { + runBp2BuildTestCaseSimple(t, Bp2buildTestCase{ + Description: "py3 python_binary_host", + ModuleTypeUnderTest: "python_binary_host", + ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory, + Blueprint: `python_binary_host { name: "foo", srcs: ["a.py"], version: { @@ -115,9 +115,9 @@ func TestPythonBinaryHostPy3(t *testing.T) { bazel_module: { bp2build_available: true }, } `, - expectedBazelTargets: []string{ + ExpectedBazelTargets: []string{ // python_version is PY3 by default. - makeBazelTarget("py_binary", "foo", attrNameToString{ + makeBazelTarget("py_binary", "foo", AttrNameToString{ "imports": `["."]`, "srcs": `["a.py"]`, "target_compatible_with": `select({ @@ -130,15 +130,15 @@ func TestPythonBinaryHostPy3(t *testing.T) { } func TestPythonBinaryHostArchVariance(t *testing.T) { - runBp2BuildTestCaseSimple(t, bp2buildTestCase{ - description: "test arch variants", - moduleTypeUnderTest: "python_binary_host", - moduleTypeUnderTestFactory: python.PythonBinaryHostFactory, - filesystem: map[string]string{ + runBp2BuildTestCaseSimple(t, Bp2buildTestCase{ + Description: "test arch variants", + ModuleTypeUnderTest: "python_binary_host", + ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory, + Filesystem: map[string]string{ "dir/arm.py": "", "dir/x86.py": "", }, - blueprint: `python_binary_host { + Blueprint: `python_binary_host { name: "foo-arm", arch: { arm: { @@ -149,8 +149,8 @@ func TestPythonBinaryHostArchVariance(t *testing.T) { }, }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("py_binary", "foo-arm", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("py_binary", "foo-arm", AttrNameToString{ "imports": `["."]`, "srcs": `select({ "//build/bazel/platforms/arch:arm": ["arm.py"], diff --git a/bp2build/python_library_conversion_test.go b/bp2build/python_library_conversion_test.go index f51f1068b..1d6061bf1 100644 --- a/bp2build/python_library_conversion_test.go +++ b/bp2build/python_library_conversion_test.go @@ -21,7 +21,7 @@ type pythonLibBp2BuildTestCase struct { expectedError error } -func convertPythonLibTestCaseToBp2build_Host(tc pythonLibBp2BuildTestCase) bp2buildTestCase { +func convertPythonLibTestCaseToBp2build_Host(tc pythonLibBp2BuildTestCase) Bp2buildTestCase { for i := range tc.expectedBazelTargets { tc.expectedBazelTargets[i].attrs["target_compatible_with"] = `select({ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], @@ -32,7 +32,7 @@ func convertPythonLibTestCaseToBp2build_Host(tc pythonLibBp2BuildTestCase) bp2bu return convertPythonLibTestCaseToBp2build(tc) } -func convertPythonLibTestCaseToBp2build(tc pythonLibBp2BuildTestCase) bp2buildTestCase { +func convertPythonLibTestCaseToBp2build(tc pythonLibBp2BuildTestCase) Bp2buildTestCase { var bp2BuildTargets []string for _, t := range tc.expectedBazelTargets { bp2BuildTargets = append(bp2BuildTargets, makeBazelTarget(t.typ, t.name, t.attrs)) @@ -43,28 +43,28 @@ func convertPythonLibTestCaseToBp2build(tc pythonLibBp2BuildTestCase) bp2buildTe for k, v := range tc.filesystem { filesystemCopy[k] = v } - return bp2buildTestCase{ - description: tc.description, - filesystem: filesystemCopy, - blueprint: tc.blueprint, - expectedBazelTargets: bp2BuildTargets, - dir: tc.dir, - expectedErr: tc.expectedError, + return Bp2buildTestCase{ + Description: tc.description, + Filesystem: filesystemCopy, + Blueprint: tc.blueprint, + ExpectedBazelTargets: bp2BuildTargets, + Dir: tc.dir, + ExpectedErr: tc.expectedError, } } func runPythonLibraryTestCase(t *testing.T, tc pythonLibBp2BuildTestCase) { t.Helper() testCase := convertPythonLibTestCaseToBp2build(tc) - testCase.description = fmt.Sprintf(testCase.description, "python_library") - testCase.blueprint = fmt.Sprintf(testCase.blueprint, "python_library") - for name, contents := range testCase.filesystem { + testCase.Description = fmt.Sprintf(testCase.Description, "python_library") + testCase.Blueprint = fmt.Sprintf(testCase.Blueprint, "python_library") + for name, contents := range testCase.Filesystem { if strings.HasSuffix(name, "Android.bp") { - testCase.filesystem[name] = fmt.Sprintf(contents, "python_library") + testCase.Filesystem[name] = fmt.Sprintf(contents, "python_library") } } - testCase.moduleTypeUnderTest = "python_library" - testCase.moduleTypeUnderTestFactory = python.PythonLibraryFactory + testCase.ModuleTypeUnderTest = "python_library" + testCase.ModuleTypeUnderTestFactory = python.PythonLibraryFactory runBp2BuildTestCaseSimple(t, testCase) } @@ -72,16 +72,16 @@ func runPythonLibraryTestCase(t *testing.T, tc pythonLibBp2BuildTestCase) { func runPythonLibraryHostTestCase(t *testing.T, tc pythonLibBp2BuildTestCase) { t.Helper() testCase := convertPythonLibTestCaseToBp2build_Host(tc) - testCase.description = fmt.Sprintf(testCase.description, "python_library_host") - testCase.blueprint = fmt.Sprintf(testCase.blueprint, "python_library_host") - for name, contents := range testCase.filesystem { + testCase.Description = fmt.Sprintf(testCase.Description, "python_library_host") + testCase.Blueprint = fmt.Sprintf(testCase.Blueprint, "python_library_host") + for name, contents := range testCase.Filesystem { if strings.HasSuffix(name, "Android.bp") { - testCase.filesystem[name] = fmt.Sprintf(contents, "python_library_host") + testCase.Filesystem[name] = fmt.Sprintf(contents, "python_library_host") } } - testCase.moduleTypeUnderTest = "python_library_host" - testCase.moduleTypeUnderTestFactory = python.PythonLibraryHostFactory - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) { + testCase.ModuleTypeUnderTest = "python_library_host" + testCase.ModuleTypeUnderTestFactory = python.PythonLibraryHostFactory + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("python_library", python.PythonLibraryFactory) }, testCase) @@ -121,7 +121,7 @@ func TestSimplePythonLib(t *testing.T) { { typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "data": `["files/data.txt"]`, "deps": `[":bar"]`, "srcs": `[ @@ -155,7 +155,7 @@ func TestSimplePythonLib(t *testing.T) { { typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["a.py"]`, "srcs_version": `"PY2"`, "imports": `["."]`, @@ -183,7 +183,7 @@ func TestSimplePythonLib(t *testing.T) { { typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["a.py"]`, "srcs_version": `"PY3"`, "imports": `["."]`, @@ -212,7 +212,7 @@ func TestSimplePythonLib(t *testing.T) { // srcs_version is PY2ANDPY3 by default. typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["a.py"]`, "imports": `["."]`, }, @@ -238,7 +238,7 @@ func TestSimplePythonLib(t *testing.T) { // srcs_version is PY2ANDPY3 by default. typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["a.py"]`, "imports": `["../.."]`, "srcs_version": `"PY3"`, @@ -292,7 +292,7 @@ func TestPythonArchVariance(t *testing.T) { { typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `select({ "//build/bazel/platforms/arch:arm": ["arm.py"], "//build/bazel/platforms/arch:x86": ["x86.py"], @@ -324,21 +324,21 @@ func TestPythonLibraryWithProtobufs(t *testing.T) { { typ: "proto_library", name: "foo_proto", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["dir/myproto.proto"]`, }, }, { typ: "py_proto_library", name: "foo_py_proto", - attrs: attrNameToString{ + attrs: AttrNameToString{ "deps": `[":foo_proto"]`, }, }, { typ: "py_library", name: "foo", - attrs: attrNameToString{ + attrs: AttrNameToString{ "srcs": `["dir/mylib.py"]`, "srcs_version": `"PY3"`, "imports": `["."]`, diff --git a/bp2build/sh_conversion_test.go b/bp2build/sh_conversion_test.go index ac890878b..d8f701d94 100644 --- a/bp2build/sh_conversion_test.go +++ b/bp2build/sh_conversion_test.go @@ -48,25 +48,25 @@ func TestShBinaryLoadStatement(t *testing.T) { } } -func runShBinaryTestCase(t *testing.T, tc bp2buildTestCase) { +func runShBinaryTestCase(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) } func TestShBinarySimple(t *testing.T) { - runShBinaryTestCase(t, bp2buildTestCase{ - description: "sh_binary test", - moduleTypeUnderTest: "sh_binary", - moduleTypeUnderTestFactory: sh.ShBinaryFactory, - blueprint: `sh_binary { + runShBinaryTestCase(t, Bp2buildTestCase{ + Description: "sh_binary test", + ModuleTypeUnderTest: "sh_binary", + ModuleTypeUnderTestFactory: sh.ShBinaryFactory, + Blueprint: `sh_binary { name: "foo", src: "foo.sh", filename: "foo.exe", sub_dir: "sub", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("sh_binary", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("sh_binary", "foo", AttrNameToString{ "srcs": `["foo.sh"]`, "filename": `"foo.exe"`, "sub_dir": `"sub"`, @@ -75,17 +75,17 @@ func TestShBinarySimple(t *testing.T) { } func TestShBinaryDefaults(t *testing.T) { - runShBinaryTestCase(t, bp2buildTestCase{ - description: "sh_binary test", - moduleTypeUnderTest: "sh_binary", - moduleTypeUnderTestFactory: sh.ShBinaryFactory, - blueprint: `sh_binary { + runShBinaryTestCase(t, Bp2buildTestCase{ + Description: "sh_binary test", + ModuleTypeUnderTest: "sh_binary", + ModuleTypeUnderTestFactory: sh.ShBinaryFactory, + Blueprint: `sh_binary { name: "foo", src: "foo.sh", bazel_module: { bp2build_available: true }, }`, - expectedBazelTargets: []string{ - makeBazelTarget("sh_binary", "foo", attrNameToString{ + ExpectedBazelTargets: []string{ + makeBazelTarget("sh_binary", "foo", AttrNameToString{ "srcs": `["foo.sh"]`, })}, }) diff --git a/bp2build/soong_config_module_type_conversion_test.go b/bp2build/soong_config_module_type_conversion_test.go index 8460caeb3..a94b2b9f1 100644 --- a/bp2build/soong_config_module_type_conversion_test.go +++ b/bp2build/soong_config_module_type_conversion_test.go @@ -20,9 +20,9 @@ import ( "testing" ) -func runSoongConfigModuleTypeTest(t *testing.T, tc bp2buildTestCase) { +func runSoongConfigModuleTypeTest(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, registerSoongConfigModuleTypes, tc) + RunBp2BuildTestCase(t, registerSoongConfigModuleTypes, tc) } func registerSoongConfigModuleTypes(ctx android.RegistrationContext) { @@ -61,12 +61,12 @@ custom_cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - soong_config_module_type is supported in bp2build", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - soong_config_module_type is supported in bp2build", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "foo", copts = select({ "//build/bazel/product_variables:acme__feature1": ["-DFEATURE1"], @@ -107,15 +107,15 @@ custom_cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - soong_config_module_type_import is supported in bp2build", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - filesystem: map[string]string{ + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - soong_config_module_type_import is supported in bp2build", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Filesystem: map[string]string{ "foo/bar/SoongConfig.bp": configBp, }, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "foo", copts = select({ "//build/bazel/product_variables:acme__feature1": ["-DFEATURE1"], @@ -161,12 +161,12 @@ custom_cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for string vars", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for string vars", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "foo", copts = select({ "//build/bazel/product_variables:acme__board__soc_a": ["-DSOC_A"], @@ -232,12 +232,12 @@ custom_cc_library_static { }, }` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for multiple variable types", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for multiple variable types", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "foo", copts = select({ "//build/bazel/product_variables:acme__board__soc_a": ["-DSOC_A"], @@ -298,15 +298,15 @@ cc_library_static { name: "soc_b_dep", bazel_module: { bp2build_available: false cc_library_static { name: "soc_default_static_dep", bazel_module: { bp2build_available: false } } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for label list attributes", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - filesystem: map[string]string{ + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for label list attributes", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + Filesystem: map[string]string{ "foo/bar/Android.bp": otherDeps, }, - expectedBazelTargets: []string{`cc_library_static( + ExpectedBazelTargets: []string{`cc_library_static( name = "foo", copts = select({ "//build/bazel/product_variables:acme__board__soc_a": ["-DSOC_A"], @@ -365,12 +365,12 @@ cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - defaults with a single namespace", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - defaults with a single namespace", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "lib", copts = select({ "//build/bazel/product_variables:vendor_foo__feature": [ @@ -446,12 +446,12 @@ cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - multiple defaults with a single namespace", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - multiple defaults with a single namespace", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "lib", asflags = select({ "//build/bazel/product_variables:acme__feature": ["-asflag_bar"], @@ -562,12 +562,12 @@ cc_library_static { } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - defaults with multiple namespaces", - moduleTypeUnderTest: "cc_library_static", - moduleTypeUnderTestFactory: cc.LibraryStaticFactory, - blueprint: bp, - expectedBazelTargets: []string{`cc_library_static( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - defaults with multiple namespaces", + ModuleTypeUnderTest: "cc_library_static", + ModuleTypeUnderTestFactory: cc.LibraryStaticFactory, + Blueprint: bp, + ExpectedBazelTargets: []string{`cc_library_static( name = "lib", copts = select({ "//build/bazel/product_variables:vendor_bar__feature": ["-DVENDOR_BAR_FEATURE"], @@ -653,15 +653,15 @@ cc_library { name: "lib_b", bazel_module: { bp2build_available: false } } cc_library { name: "lib_default", bazel_module: { bp2build_available: false } } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{ + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{ "foo/bar/Android.bp": otherDeps, }, - expectedBazelTargets: []string{`cc_binary( + ExpectedBazelTargets: []string{`cc_binary( name = "library_linking_strategy_sample_binary", deps = select({ "//build/bazel/product_variables:android__library_linking_strategy__prefer_static": [ @@ -734,15 +734,15 @@ cc_library { name: "lib_a", bazel_module: { bp2build_available: false } } cc_library { name: "lib_b", bazel_module: { bp2build_available: false } } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{ + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{ "foo/bar/Android.bp": otherDeps, }, - expectedBazelTargets: []string{`cc_binary( + ExpectedBazelTargets: []string{`cc_binary( name = "library_linking_strategy_sample_binary", deps = select({ "//build/bazel/product_variables:android__library_linking_strategy__prefer_static": [ @@ -822,15 +822,15 @@ cc_library { name: "lib_b", bazel_module: { bp2build_available: false } } cc_library { name: "lib_default", bazel_module: { bp2build_available: false } } ` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{ + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{ "foo/bar/Android.bp": otherDeps, }, - expectedBazelTargets: []string{`cc_binary( + ExpectedBazelTargets: []string{`cc_binary( name = "alphabet_binary", deps = select({ "//build/bazel/product_variables:android__alphabet__a": [], @@ -888,13 +888,13 @@ cc_binary { }, }` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{}, - expectedBazelTargets: []string{`cc_binary( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{}, + ExpectedBazelTargets: []string{`cc_binary( name = "alphabet_binary", local_includes = ["."], srcs = ["main.cc"], @@ -941,13 +941,13 @@ cc_binary { enabled: false, }` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{}, - expectedBazelTargets: []string{`cc_binary( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{}, + ExpectedBazelTargets: []string{`cc_binary( name = "alphabet_binary", local_includes = ["."], srcs = ["main.cc"], @@ -985,13 +985,13 @@ cc_binary { defaults: ["alphabet_sample_cc_defaults"], }` - runSoongConfigModuleTypeTest(t, bp2buildTestCase{ - description: "soong config variables - generates selects for library_linking_strategy", - moduleTypeUnderTest: "cc_binary", - moduleTypeUnderTestFactory: cc.BinaryFactory, - blueprint: bp, - filesystem: map[string]string{}, - expectedBazelTargets: []string{`cc_binary( + runSoongConfigModuleTypeTest(t, Bp2buildTestCase{ + Description: "soong config variables - generates selects for library_linking_strategy", + ModuleTypeUnderTest: "cc_binary", + ModuleTypeUnderTestFactory: cc.BinaryFactory, + Blueprint: bp, + Filesystem: map[string]string{}, + ExpectedBazelTargets: []string{`cc_binary( name = "alphabet_binary", local_includes = ["."], srcs = ["main.cc"], diff --git a/bp2build/testing.go b/bp2build/testing.go index 580bac4a5..3ee5096da 100644 --- a/bp2build/testing.go +++ b/bp2build/testing.go @@ -53,16 +53,16 @@ func checkError(t *testing.T, errs []error, expectedErr error) bool { return false } -func errored(t *testing.T, tc bp2buildTestCase, errs []error) bool { +func errored(t *testing.T, tc Bp2buildTestCase, errs []error) bool { t.Helper() - if tc.expectedErr != nil { + if tc.ExpectedErr != nil { // Rely on checkErrors, as this test case is expected to have an error. return false } if len(errs) > 0 { for _, err := range errs { - t.Errorf("%s: %s", tc.description, err) + t.Errorf("%s: %s", tc.Description, err) } return true } @@ -71,42 +71,42 @@ func errored(t *testing.T, tc bp2buildTestCase, errs []error) bool { return false } -func runBp2BuildTestCaseSimple(t *testing.T, tc bp2buildTestCase) { +func runBp2BuildTestCaseSimple(t *testing.T, tc Bp2buildTestCase) { t.Helper() - runBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) + RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) } -type bp2buildTestCase struct { - description string - moduleTypeUnderTest string - moduleTypeUnderTestFactory android.ModuleFactory - blueprint string - expectedBazelTargets []string - filesystem map[string]string - dir string +type Bp2buildTestCase struct { + Description string + ModuleTypeUnderTest string + ModuleTypeUnderTestFactory android.ModuleFactory + Blueprint string + ExpectedBazelTargets []string + Filesystem map[string]string + Dir string // An error with a string contained within the string of the expected error - expectedErr error - unconvertedDepsMode unconvertedDepsMode + ExpectedErr error + UnconvertedDepsMode unconvertedDepsMode } -func runBp2BuildTestCase(t *testing.T, registerModuleTypes func(ctx android.RegistrationContext), tc bp2buildTestCase) { +func RunBp2BuildTestCase(t *testing.T, registerModuleTypes func(ctx android.RegistrationContext), tc Bp2buildTestCase) { t.Helper() dir := "." filesystem := make(map[string][]byte) toParse := []string{ "Android.bp", } - for f, content := range tc.filesystem { + for f, content := range tc.Filesystem { if strings.HasSuffix(f, "Android.bp") { toParse = append(toParse, f) } filesystem[f] = []byte(content) } - config := android.TestConfig(buildDir, nil, tc.blueprint, filesystem) + config := android.TestConfig(buildDir, nil, tc.Blueprint, filesystem) ctx := android.NewTestContext(config) registerModuleTypes(ctx) - ctx.RegisterModuleType(tc.moduleTypeUnderTest, tc.moduleTypeUnderTestFactory) + ctx.RegisterModuleType(tc.ModuleTypeUnderTest, tc.ModuleTypeUnderTestFactory) ctx.RegisterBp2BuildConfig(bp2buildConfig) ctx.RegisterForBazelConversion() @@ -120,35 +120,35 @@ func runBp2BuildTestCase(t *testing.T, registerModuleTypes func(ctx android.Regi } parseAndResolveErrs := append(parseErrs, resolveDepsErrs...) - if tc.expectedErr != nil && checkError(t, parseAndResolveErrs, tc.expectedErr) { + if tc.ExpectedErr != nil && checkError(t, parseAndResolveErrs, tc.ExpectedErr) { return } checkDir := dir - if tc.dir != "" { - checkDir = tc.dir + if tc.Dir != "" { + checkDir = tc.Dir } codegenCtx := NewCodegenContext(config, *ctx.Context, Bp2Build) - codegenCtx.unconvertedDepMode = tc.unconvertedDepsMode + codegenCtx.unconvertedDepMode = tc.UnconvertedDepsMode bazelTargets, errs := generateBazelTargetsForDir(codegenCtx, checkDir) - if tc.expectedErr != nil { - if checkError(t, errs, tc.expectedErr) { + if tc.ExpectedErr != nil { + if checkError(t, errs, tc.ExpectedErr) { return } else { - t.Errorf("Expected error: %q, got: %q and %q", tc.expectedErr, errs, parseAndResolveErrs) + t.Errorf("Expected error: %q, got: %q and %q", tc.ExpectedErr, errs, parseAndResolveErrs) } } else { android.FailIfErrored(t, errs) } - if actualCount, expectedCount := len(bazelTargets), len(tc.expectedBazelTargets); actualCount != expectedCount { + if actualCount, expectedCount := len(bazelTargets), len(tc.ExpectedBazelTargets); actualCount != expectedCount { t.Errorf("%s: Expected %d bazel target (%s), got `%d`` (%s)", - tc.description, expectedCount, tc.expectedBazelTargets, actualCount, bazelTargets) + tc.Description, expectedCount, tc.ExpectedBazelTargets, actualCount, bazelTargets) } else { for i, target := range bazelTargets { - if w, g := tc.expectedBazelTargets[i], target.content; w != g { + if w, g := tc.ExpectedBazelTargets[i], target.content; w != g { t.Errorf( "%s: Expected generated Bazel target to be `%s`, got `%s`", - tc.description, w, g) + tc.Description, w, g) } } } @@ -391,10 +391,10 @@ func simpleModuleDoNotConvertBp2build(typ, name string) string { }`, typ, name) } -type attrNameToString map[string]string +type AttrNameToString map[string]string -func (a attrNameToString) clone() attrNameToString { - newAttrs := make(attrNameToString, len(a)) +func (a AttrNameToString) clone() AttrNameToString { + newAttrs := make(AttrNameToString, len(a)) for k, v := range a { newAttrs[k] = v } @@ -403,7 +403,7 @@ func (a attrNameToString) clone() attrNameToString { // makeBazelTargetNoRestrictions returns bazel target build file definition that can be host or // device specific, or independent of host/device. -func makeBazelTargetHostOrDevice(typ, name string, attrs attrNameToString, hod android.HostOrDeviceSupported) string { +func makeBazelTargetHostOrDevice(typ, name string, attrs AttrNameToString, hod android.HostOrDeviceSupported) string { if _, ok := attrs["target_compatible_with"]; !ok { switch hod { case android.HostSupported: @@ -426,15 +426,15 @@ func makeBazelTargetHostOrDevice(typ, name string, attrs attrNameToString, hod a )`, typ, strings.Join(attrStrings, "\n")) } -// makeBazelTargetNoRestrictions returns bazel target build file definition that does not add a +// MakeBazelTargetNoRestrictions returns bazel target build file definition that does not add a // target_compatible_with. This is useful for module types like filegroup and genrule that arch not // arch variant -func makeBazelTargetNoRestrictions(typ, name string, attrs attrNameToString) string { +func MakeBazelTargetNoRestrictions(typ, name string, attrs AttrNameToString) string { return makeBazelTargetHostOrDevice(typ, name, attrs, android.HostAndDeviceDefault) } // makeBazelTargetNoRestrictions returns bazel target build file definition that is device specific // as this is the most common default in Soong. -func makeBazelTarget(typ, name string, attrs attrNameToString) string { +func makeBazelTarget(typ, name string, attrs AttrNameToString) string { return makeBazelTargetHostOrDevice(typ, name, attrs, android.DeviceSupported) }