diff options
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) } |