Refactor bp2build tests for allowlist v2
Allowlist v2 will change bp2build by automatically disabling rdeps of unconvertible modules. Many bp2build tests create bp2build stub modules without an implementation, This CL changes setup of such tests to also contain a BUILD file with "stub implementations" of equivalent targets, to keep these test targets convertible. To verify this change in-place, this CL removes `bp2build_available: false` from these dependencies. This is a test-only change for bp2build tests. Bug: 285631638 Test: m bp2build Change-Id: I489480cbc4158a416b7abf57c35a6e2bc2ad6173
This commit is contained in:
parent
95ad0a9226
commit
cd209035aa
23 changed files with 465 additions and 439 deletions
|
@ -15,10 +15,10 @@
|
|||
package bp2build
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/java"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestConvertAndroidLibrary(t *testing.T) {
|
||||
|
@ -34,7 +34,8 @@ func TestConvertAndroidLibrary(t *testing.T) {
|
|||
"res/res.png": "",
|
||||
"manifest/AndroidManifest.xml": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "static_lib_dep") + `
|
||||
StubbedBuildDefinitions: []string{"static_lib_dep"},
|
||||
Blueprint: simpleModule("android_library", "static_lib_dep") + `
|
||||
android_library {
|
||||
name: "TestLib",
|
||||
srcs: ["lib.java"],
|
||||
|
@ -81,7 +82,7 @@ func TestConvertAndroidLibraryWithNoSources(t *testing.T) {
|
|||
"res/res.png": "",
|
||||
"AndroidManifest.xml": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "lib_dep") + `
|
||||
Blueprint: simpleModule("android_library", "lib_dep") + `
|
||||
android_library {
|
||||
name: "TestLib",
|
||||
srcs: [],
|
||||
|
@ -107,18 +108,24 @@ func TestConvertAndroidLibraryImport(t *testing.T) {
|
|||
ModuleTypeUnderTestFactory: java.AARImportFactory,
|
||||
Filesystem: map[string]string{
|
||||
"import.aar": "",
|
||||
"dep.aar": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"static_lib_dep", "prebuilt_static_import_dep"},
|
||||
// Bazel's aar_import can only export *_import targets, so we expect
|
||||
// only "static_import_dep" in exports, but both "static_lib_dep" and
|
||||
// "static_import_dep" in deps
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "static_lib_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("android_library_import", "static_import_dep") + `
|
||||
Blueprint: simpleModule("android_library", "static_lib_dep") + `
|
||||
android_library_import {
|
||||
name: "TestImport",
|
||||
aars: ["import.aar"],
|
||||
static_libs: ["static_lib_dep", "static_import_dep"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
// TODO: b/301007952 - This dep is needed because android_library_import must have aars set.
|
||||
android_library_import {
|
||||
name: "static_import_dep",
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget(
|
||||
|
|
|
@ -78,7 +78,8 @@ func TestAndroidAppAllSupportedFields(t *testing.T) {
|
|||
"manifest/AndroidManifest.xml": "",
|
||||
"assets_/asset.png": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_app", "static_lib_dep") + `
|
||||
StubbedBuildDefinitions: []string{"static_lib_dep"},
|
||||
Blueprint: simpleModule("android_app", "static_lib_dep") + `
|
||||
android_app {
|
||||
name: "TestApp",
|
||||
srcs: ["app.java"],
|
||||
|
@ -177,7 +178,8 @@ func TestAndroidAppCertIsModule(t *testing.T) {
|
|||
ModuleTypeUnderTest: "android_app",
|
||||
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
|
||||
Filesystem: map[string]string{},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
|
||||
StubbedBuildDefinitions: []string{"foocert"},
|
||||
Blueprint: simpleModule("filegroup", "foocert") + `
|
||||
android_app {
|
||||
name: "TestApp",
|
||||
certificate: ":foocert",
|
||||
|
@ -262,7 +264,8 @@ func TestAndroidAppLibs(t *testing.T) {
|
|||
ModuleTypeUnderTest: "android_app",
|
||||
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
|
||||
Filesystem: map[string]string{},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("java_library", "barLib") + `
|
||||
StubbedBuildDefinitions: []string{"barLib"},
|
||||
Blueprint: simpleModule("java_library", "barLib") + `
|
||||
android_app {
|
||||
name: "foo",
|
||||
libs: ["barLib"],
|
||||
|
@ -291,8 +294,9 @@ func TestAndroidAppKotlinSrcs(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
"res/res.png": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("filegroup", "foocert") +
|
||||
SimpleModuleDoNotConvertBp2build("java_library", "barLib") + `
|
||||
StubbedBuildDefinitions: []string{"foocert", "barLib"},
|
||||
Blueprint: simpleModule("filegroup", "foocert") +
|
||||
simpleModule("java_library", "barLib") + `
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["a.java", "b.kt"],
|
||||
|
@ -334,6 +338,7 @@ func TestAndroidAppCommonSrcs(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
"res/res.png": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"barLib"},
|
||||
Blueprint: `
|
||||
android_app {
|
||||
name: "foo",
|
||||
|
@ -348,7 +353,6 @@ android_app {
|
|||
}
|
||||
java_library{
|
||||
name: "barLib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
|
|
@ -74,38 +74,34 @@ func TestApexBundleSimple(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.key", "com.android.apogee.certificate", "native_shared_lib_1", "native_shared_lib_2",
|
||||
"prebuilt_1", "prebuilt_2", "com.android.apogee-file_contexts", "cc_binary_1", "sh_binary_2"},
|
||||
Blueprint: `
|
||||
apex_key {
|
||||
name: "com.android.apogee.key",
|
||||
public_key: "com.android.apogee.avbpubkey",
|
||||
private_key: "com.android.apogee.pem",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -113,11 +109,10 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_binary { name: "cc_binary_1", bazel_module: { bp2build_available: false } }
|
||||
sh_binary { name: "sh_binary_2", bazel_module: { bp2build_available: false } }
|
||||
cc_binary { name: "cc_binary_1"}
|
||||
sh_binary { name: "sh_binary_2"}
|
||||
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
|
@ -202,6 +197,7 @@ func TestApexBundleSimple_fileContextsInAnotherAndroidBp(t *testing.T) {
|
|||
Description: "apex - file contexts is a module in another Android.bp",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: []string{"//a/b:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"a/b/Android.bp": `
|
||||
filegroup {
|
||||
|
@ -209,7 +205,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -252,6 +247,7 @@ func TestApexBundleSimple_fileContextsIsNotSpecified(t *testing.T) {
|
|||
Description: "apex - file contexts is not specified",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
|
@ -259,7 +255,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -281,12 +276,12 @@ func TestApexBundleCompileMultilibBoth(t *testing.T) {
|
|||
Description: "apex - example with compile_multilib=both",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: append(multilibStubNames(), "//system/sepolicy/apex:com.android.apogee-file_contexts"),
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -373,12 +368,12 @@ func TestApexBundleCompileMultilibFirstAndDefaultValue(t *testing.T) {
|
|||
Description: "apex - example with " + compileMultiLibProp,
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: append(multilibStubNames(), "//system/sepolicy/apex:com.android.apogee-file_contexts"),
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -393,12 +388,12 @@ func TestApexBundleCompileMultilib32(t *testing.T) {
|
|||
Description: "apex - example with compile_multilib=32",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: append(multilibStubNames(), "//system/sepolicy/apex:com.android.apogee-file_contexts"),
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -425,12 +420,12 @@ func TestApexBundleCompileMultilib64(t *testing.T) {
|
|||
Description: "apex - example with compile_multilib=64",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: append(multilibStubNames(), "//system/sepolicy/apex:com.android.apogee-file_contexts"),
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -458,31 +453,31 @@ filegroup {
|
|||
}})
|
||||
}
|
||||
|
||||
func multilibStubNames() []string {
|
||||
return []string{"native_shared_lib_for_both", "native_shared_lib_for_first", "native_shared_lib_for_lib32", "native_shared_lib_for_lib64",
|
||||
"native_shared_lib_for_lib64", "unnested_native_shared_lib"}
|
||||
}
|
||||
|
||||
func createMultilibBlueprint(compile_multilib string) string {
|
||||
return fmt.Sprintf(`
|
||||
cc_library {
|
||||
name: "native_shared_lib_for_both",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_for_first",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_for_lib32",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_for_lib64",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "unnested_native_shared_lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -519,12 +514,12 @@ func TestApexBundleDefaultPropertyValues(t *testing.T) {
|
|||
Description: "apex - default property values",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -546,12 +541,12 @@ func TestApexBundleHasBazelModuleProps(t *testing.T) {
|
|||
Description: "apex - has bazel module props",
|
||||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
@ -575,38 +570,35 @@ func TestBp2BuildOverrideApex(t *testing.T) {
|
|||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.key", "com.android.apogee.certificate", "native_shared_lib_1",
|
||||
"native_shared_lib_2", "prebuilt_1", "prebuilt_2", "com.android.apogee-file_contexts", "cc_binary_1",
|
||||
"sh_binary_2", "com.android.apogee", "com.google.android.apogee.key", "com.google.android.apogee.certificate"},
|
||||
Blueprint: `
|
||||
apex_key {
|
||||
name: "com.android.apogee.key",
|
||||
public_key: "com.android.apogee.avbpubkey",
|
||||
private_key: "com.android.apogee.pem",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -614,11 +606,10 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_binary { name: "cc_binary_1", bazel_module: { bp2build_available: false } }
|
||||
sh_binary { name: "sh_binary_2", bazel_module: { bp2build_available: false } }
|
||||
cc_binary { name: "cc_binary_1" }
|
||||
sh_binary { name: "sh_binary_2" }
|
||||
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
|
@ -643,20 +634,17 @@ apex {
|
|||
"prebuilt_1",
|
||||
"prebuilt_2",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "com.google.android.apogee.key",
|
||||
public_key: "com.google.android.apogee.avbpubkey",
|
||||
private_key: "com.google.android.apogee.pem",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.google.android.apogee.certificate",
|
||||
certificate: "com.google.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -717,28 +705,27 @@ func TestOverrideApexTest(t *testing.T) {
|
|||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.certificate", "native_shared_lib_1",
|
||||
"prebuilt_1", "com.android.apogee-file_contexts", "cc_binary_1", "sh_binary_2",
|
||||
"com.android.apogee", "com.google.android.apogee.key", "com.google.android.apogee.certificate", "com.android.apogee.key"},
|
||||
Blueprint: `
|
||||
apex_key {
|
||||
name: "com.android.apogee.key",
|
||||
public_key: "com.android.apogee.avbpubkey",
|
||||
private_key: "com.android.apogee.pem",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "native_shared_lib_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_1",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -746,11 +733,10 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_binary { name: "cc_binary_1", bazel_module: { bp2build_available: false } }
|
||||
sh_binary { name: "sh_binary_2", bazel_module: { bp2build_available: false } }
|
||||
cc_binary { name: "cc_binary_1"}
|
||||
sh_binary { name: "sh_binary_2"}
|
||||
|
||||
apex_test {
|
||||
name: "com.android.apogee",
|
||||
|
@ -773,20 +759,17 @@ apex_test {
|
|||
prebuilts: [
|
||||
"prebuilt_1",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "com.google.android.apogee.key",
|
||||
public_key: "com.google.android.apogee.avbpubkey",
|
||||
private_key: "com.google.android.apogee.pem",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.google.android.apogee.certificate",
|
||||
certificate: "com.google.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -835,12 +818,12 @@ func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInDifferentAndroid
|
|||
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,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
"a/b/Android.bp": `
|
||||
apex {
|
||||
|
@ -869,12 +852,12 @@ func TestApexBundleSimple_manifestIsSet_baseApexOverrideApexInDifferentAndroidBp
|
|||
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,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
"a/b/Android.bp": `
|
||||
apex {
|
||||
|
@ -904,12 +887,12 @@ func TestApexBundleSimple_manifestIsEmpty_baseApexOverrideApexInSameAndroidBp(t
|
|||
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,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
|
@ -937,12 +920,12 @@ func TestApexBundleSimple_manifestIsSet_baseApexOverrideApexInSameAndroidBp(t *t
|
|||
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,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
|
@ -971,12 +954,12 @@ func TestApexBundleSimple_packageNameOverride(t *testing.T) {
|
|||
Description: "override_apex - override package name",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
|
@ -1006,24 +989,22 @@ func TestApexBundleSimple_NoPrebuiltsOverride(t *testing.T) {
|
|||
Description: "override_apex - no override",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"prebuilt_file", "com.android.apogee", "//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_file",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
prebuilts: ["prebuilt_file"]
|
||||
prebuilts: ["prebuilt_file"]
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -1046,35 +1027,32 @@ func TestApexBundleSimple_PrebuiltsOverride(t *testing.T) {
|
|||
Description: "override_apex - ooverride",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"prebuilt_file", "prebuilt_file2", "com.android.apogee", "//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_file",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_file2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
prebuilts: ["prebuilt_file"]
|
||||
prebuilts: ["prebuilt_file"]
|
||||
}
|
||||
|
||||
override_apex {
|
||||
name: "com.google.android.apogee",
|
||||
base: ":com.android.apogee",
|
||||
prebuilts: ["prebuilt_file2"]
|
||||
prebuilts: ["prebuilt_file2"]
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -1092,24 +1070,22 @@ func TestApexBundleSimple_PrebuiltsOverrideEmptyList(t *testing.T) {
|
|||
Description: "override_apex - override with empty list",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"prebuilt_file", "com.android.apogee", "//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
prebuilt_etc {
|
||||
name: "prebuilt_file",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
prebuilts: ["prebuilt_file"]
|
||||
prebuilts: ["prebuilt_file"]
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -1133,12 +1109,12 @@ func TestApexBundleSimple_NoLoggingParentOverride(t *testing.T) {
|
|||
Description: "override_apex - logging_parent - no override",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
|
@ -1168,12 +1144,12 @@ func TestApexBundleSimple_LoggingParentOverride(t *testing.T) {
|
|||
Description: "override_apex - logging_parent - override",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"//system/sepolicy/apex:com.android.apogee-file_contexts"},
|
||||
Filesystem: map[string]string{
|
||||
"system/sepolicy/apex/Android.bp": `
|
||||
filegroup {
|
||||
name: "com.android.apogee-file_contexts",
|
||||
srcs: [ "apogee-file_contexts", ],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
},
|
||||
Blueprint: `
|
||||
|
@ -1205,11 +1181,11 @@ func TestBp2BuildOverrideApex_CertificateNil(t *testing.T) {
|
|||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.certificate", "com.android.apogee-file_contexts", "com.android.apogee"},
|
||||
Blueprint: `
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -1217,7 +1193,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1225,7 +1200,6 @@ apex {
|
|||
manifest: "apogee_manifest.json",
|
||||
file_contexts: ":com.android.apogee-file_contexts",
|
||||
certificate: ":com.android.apogee.certificate",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -1250,11 +1224,11 @@ func TestApexCertificateIsModule(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee-file_contexts", "com.android.apogee.certificate"},
|
||||
Blueprint: `
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1263,7 +1237,7 @@ apex {
|
|||
file_contexts: ":com.android.apogee-file_contexts",
|
||||
certificate: ":com.android.apogee.certificate",
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee-file_contexts"),
|
||||
` + simpleModule("filegroup", "com.android.apogee-file_contexts"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("apex", "com.android.apogee", AttrNameToString{
|
||||
"certificate": `":com.android.apogee.certificate"`,
|
||||
|
@ -1279,6 +1253,7 @@ func TestApexWithStubLib(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"myapex-file_contexts"},
|
||||
Blueprint: `
|
||||
cc_library{
|
||||
name: "foo",
|
||||
|
@ -1299,7 +1274,7 @@ apex {
|
|||
binaries: ["bar"],
|
||||
native_shared_libs: ["foo"],
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("filegroup", "myapex-file_contexts"),
|
||||
` + simpleModule("filegroup", "myapex-file_contexts"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_binary", "bar", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -1350,6 +1325,7 @@ func TestApexCertificateIsSrc(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex",
|
||||
ModuleTypeUnderTestFactory: apex.BundleFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee-file_contexts"},
|
||||
Blueprint: `
|
||||
apex {
|
||||
name: "com.android.apogee",
|
||||
|
@ -1357,7 +1333,7 @@ apex {
|
|||
file_contexts: ":com.android.apogee-file_contexts",
|
||||
certificate: "com.android.apogee.certificate",
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee-file_contexts"),
|
||||
` + simpleModule("filegroup", "com.android.apogee-file_contexts"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("apex", "com.android.apogee", AttrNameToString{
|
||||
"certificate_name": `"com.android.apogee.certificate"`,
|
||||
|
@ -1373,11 +1349,12 @@ func TestBp2BuildOverrideApex_CertificateIsModule(t *testing.T) {
|
|||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.certificate", "com.android.apogee-file_contexts",
|
||||
"com.android.apogee", "com.google.android.apogee.certificate"},
|
||||
Blueprint: `
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -1385,7 +1362,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1393,13 +1369,11 @@ apex {
|
|||
manifest: "apogee_manifest.json",
|
||||
file_contexts: ":com.android.apogee-file_contexts",
|
||||
certificate: ":com.android.apogee.certificate",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.google.android.apogee.certificate",
|
||||
certificate: "com.google.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
override_apex {
|
||||
|
@ -1424,11 +1398,11 @@ func TestBp2BuildOverrideApex_CertificateIsSrc(t *testing.T) {
|
|||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.certificate", "com.android.apogee", "com.android.apogee-file_contexts"},
|
||||
Blueprint: `
|
||||
android_app_certificate {
|
||||
name: "com.android.apogee.certificate",
|
||||
certificate: "com.android.apogee",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
@ -1436,7 +1410,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1469,8 +1442,9 @@ func TestApexTestBundleSimple(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex_test",
|
||||
ModuleTypeUnderTestFactory: apex.TestApexBundleFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"cc_test_1"},
|
||||
Blueprint: `
|
||||
cc_test { name: "cc_test_1", bazel_module: { bp2build_available: false } }
|
||||
cc_test { name: "cc_test_1"}
|
||||
|
||||
apex_test {
|
||||
name: "test_com.android.apogee",
|
||||
|
@ -1497,6 +1471,7 @@ func TestApexBundle_overridePlusProductVars(t *testing.T) {
|
|||
Description: "apex - overriding a module that uses product vars",
|
||||
ModuleTypeUnderTest: "override_apex",
|
||||
ModuleTypeUnderTestFactory: apex.OverrideApexFactory,
|
||||
StubbedBuildDefinitions: []string{"foo-file_contexts"},
|
||||
Blueprint: `
|
||||
soong_config_string_variable {
|
||||
name: "library_linking_strategy",
|
||||
|
@ -1535,7 +1510,6 @@ filegroup {
|
|||
srcs: [
|
||||
"com.android.apogee-file_contexts",
|
||||
],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
apex {
|
||||
|
|
|
@ -83,14 +83,15 @@ func TestApexKey_KeysAreModules(t *testing.T) {
|
|||
ModuleTypeUnderTest: "apex_key",
|
||||
ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"com.android.apogee.avbpubkey", "com.android.apogee.pem"},
|
||||
Blueprint: `
|
||||
apex_key {
|
||||
name: "com.android.apogee.key",
|
||||
public_key: ":com.android.apogee.avbpubkey",
|
||||
private_key: ":com.android.apogee.pem",
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.avbpubkey") +
|
||||
SimpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.pem"),
|
||||
` + simpleModule("filegroup", "com.android.apogee.avbpubkey") +
|
||||
simpleModule("filegroup", "com.android.apogee.pem"),
|
||||
ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
|
||||
"private_key": `":com.android.apogee.pem"`,
|
||||
"public_key": `":com.android.apogee.avbpubkey"`,
|
||||
|
|
|
@ -1743,7 +1743,8 @@ func TestCommonBp2BuildModuleAttrs(t *testing.T) {
|
|||
Description: "Required into data test",
|
||||
ModuleTypeUnderTest: "filegroup",
|
||||
ModuleTypeUnderTestFactory: android.FileGroupFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("filegroup", "reqd") + `
|
||||
StubbedBuildDefinitions: []string{"reqd"},
|
||||
Blueprint: simpleModule("filegroup", "reqd") + `
|
||||
filegroup {
|
||||
name: "fg_foo",
|
||||
required: ["reqd"],
|
||||
|
@ -1759,7 +1760,8 @@ filegroup {
|
|||
Description: "Required into data test, cyclic self reference is filtered out",
|
||||
ModuleTypeUnderTest: "filegroup",
|
||||
ModuleTypeUnderTestFactory: android.FileGroupFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("filegroup", "reqd") + `
|
||||
StubbedBuildDefinitions: []string{"reqd"},
|
||||
Blueprint: simpleModule("filegroup", "reqd") + `
|
||||
filegroup {
|
||||
name: "fg_foo",
|
||||
required: ["reqd", "fg_foo"],
|
||||
|
@ -1775,8 +1777,9 @@ filegroup {
|
|||
Description: "Required via arch into data test",
|
||||
ModuleTypeUnderTest: "python_library",
|
||||
ModuleTypeUnderTestFactory: python.PythonLibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("python_library", "reqdx86") +
|
||||
SimpleModuleDoNotConvertBp2build("python_library", "reqdarm") + `
|
||||
StubbedBuildDefinitions: []string{"reqdx86", "reqdarm"},
|
||||
Blueprint: simpleModule("python_library", "reqdx86") +
|
||||
simpleModule("python_library", "reqdarm") + `
|
||||
python_library {
|
||||
name: "fg_foo",
|
||||
arch: {
|
||||
|
@ -1809,7 +1812,8 @@ python_library {
|
|||
"data.bin": "",
|
||||
"src.py": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("python_library", "reqd") + `
|
||||
StubbedBuildDefinitions: []string{"reqd"},
|
||||
Blueprint: simpleModule("python_library", "reqd") + `
|
||||
python_library {
|
||||
name: "fg_foo",
|
||||
data: ["data.bin"],
|
||||
|
@ -1831,7 +1835,8 @@ python_library {
|
|||
Description: "All props-to-attrs at once together test",
|
||||
ModuleTypeUnderTest: "filegroup",
|
||||
ModuleTypeUnderTestFactory: android.FileGroupFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("filegroup", "reqd") + `
|
||||
StubbedBuildDefinitions: []string{"reqd"},
|
||||
Blueprint: simpleModule("filegroup", "reqd") + `
|
||||
filegroup {
|
||||
name: "fg_foo",
|
||||
required: ["reqd"],
|
||||
|
|
|
@ -44,10 +44,11 @@ func generateBazelTargetsForTest(targets []testBazelTarget, hod android.HostOrDe
|
|||
}
|
||||
|
||||
type ccBinaryBp2buildTestCase struct {
|
||||
description string
|
||||
filesystem map[string]string
|
||||
blueprint string
|
||||
targets []testBazelTarget
|
||||
description string
|
||||
filesystem map[string]string
|
||||
blueprint string
|
||||
targets []testBazelTarget
|
||||
stubbedBuildDefinitions []string
|
||||
}
|
||||
|
||||
func registerCcBinaryModuleTypes(ctx android.RegistrationContext) {
|
||||
|
@ -81,6 +82,7 @@ func runCcBinaryTestCase(t *testing.T, testCase ccBinaryBp2buildTestCase) {
|
|||
Description: description,
|
||||
Blueprint: binaryReplacer.Replace(testCase.blueprint),
|
||||
Filesystem: testCase.filesystem,
|
||||
StubbedBuildDefinitions: testCase.stubbedBuildDefinitions,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -97,6 +99,7 @@ func runCcHostBinaryTestCase(t *testing.T, testCase ccBinaryBp2buildTestCase) {
|
|||
Description: description,
|
||||
Blueprint: hostBinaryReplacer.Replace(testCase.blueprint),
|
||||
Filesystem: testCase.filesystem,
|
||||
StubbedBuildDefinitions: testCase.stubbedBuildDefinitions,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -107,6 +110,7 @@ func TestBasicCcBinary(t *testing.T) {
|
|||
filesystem: map[string]string{
|
||||
soongCcVersionLibBpPath: soongCcVersionLibBp,
|
||||
},
|
||||
stubbedBuildDefinitions: []string{"//build/soong/cc/libbuildversion:libbuildversion"},
|
||||
blueprint: `
|
||||
{rule_name} {
|
||||
name: "foo",
|
||||
|
@ -264,7 +268,8 @@ func TestCcBinaryLdflagsSplitBySpaceExceptSoongAdded(t *testing.T) {
|
|||
|
||||
func TestCcBinarySplitSrcsByLang(t *testing.T) {
|
||||
runCcHostBinaryTestCase(t, ccBinaryBp2buildTestCase{
|
||||
description: "split srcs by lang",
|
||||
description: "split srcs by lang",
|
||||
stubbedBuildDefinitions: []string{"fg_foo"},
|
||||
blueprint: `
|
||||
{rule_name} {
|
||||
name: "foo",
|
||||
|
@ -276,7 +281,7 @@ func TestCcBinarySplitSrcsByLang(t *testing.T) {
|
|||
],
|
||||
include_build_directory: false,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("filegroup", "fg_foo"),
|
||||
` + simpleModule("filegroup", "fg_foo"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_binary", "foo", AttrNameToString{
|
||||
"srcs": `[
|
||||
|
@ -300,17 +305,17 @@ func TestCcBinarySplitSrcsByLang(t *testing.T) {
|
|||
func TestCcBinaryDoNotDistinguishBetweenDepsAndImplementationDeps(t *testing.T) {
|
||||
runCcBinaryTestCase(t, ccBinaryBp2buildTestCase{
|
||||
description: "no implementation deps",
|
||||
stubbedBuildDefinitions: []string{"generated_hdr", "export_generated_hdr", "static_dep", "implementation_static_dep",
|
||||
"whole_static_dep", "not_explicitly_exported_whole_static_dep", "shared_dep", "implementation_shared_dep"},
|
||||
blueprint: `
|
||||
genrule {
|
||||
name: "generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
genrule {
|
||||
name: "export_generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
{rule_name} {
|
||||
|
@ -326,12 +331,12 @@ genrule {
|
|||
export_generated_headers: ["export_generated_hdr"],
|
||||
}
|
||||
` +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "static_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "implementation_static_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "whole_static_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "not_explicitly_exported_whole_static_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "shared_dep") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep"),
|
||||
simpleModule("cc_library_static", "static_dep") +
|
||||
simpleModule("cc_library_static", "implementation_static_dep") +
|
||||
simpleModule("cc_library_static", "whole_static_dep") +
|
||||
simpleModule("cc_library_static", "not_explicitly_exported_whole_static_dep") +
|
||||
simpleModule("cc_library", "shared_dep") +
|
||||
simpleModule("cc_library", "implementation_shared_dep"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_binary", "foo", AttrNameToString{
|
||||
"deps": `[
|
||||
|
@ -502,6 +507,7 @@ func TestCcBinaryPropertiesToFeatures(t *testing.T) {
|
|||
|
||||
func TestCcBinarySharedProto(t *testing.T) {
|
||||
runCcBinaryTests(t, ccBinaryBp2buildTestCase{
|
||||
stubbedBuildDefinitions: []string{"libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
blueprint: soongCcProtoLibraries + `{rule_name} {
|
||||
name: "foo",
|
||||
srcs: ["foo.proto"],
|
||||
|
@ -524,6 +530,7 @@ func TestCcBinarySharedProto(t *testing.T) {
|
|||
|
||||
func TestCcBinaryStaticProto(t *testing.T) {
|
||||
runCcBinaryTests(t, ccBinaryBp2buildTestCase{
|
||||
stubbedBuildDefinitions: []string{"libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
blueprint: soongCcProtoLibraries + `{rule_name} {
|
||||
name: "foo",
|
||||
srcs: ["foo.proto"],
|
||||
|
@ -1224,13 +1231,13 @@ func TestCCBinaryRscriptSrc(t *testing.T) {
|
|||
|
||||
func TestCcBinaryStatic_SystemSharedLibUsedAsDep(t *testing.T) {
|
||||
runCcBinaryTestCase(t, ccBinaryBp2buildTestCase{
|
||||
description: "cc_library_static system_shared_lib empty for linux_bionic variant",
|
||||
stubbedBuildDefinitions: []string{"libm", "libc"},
|
||||
description: "cc_library_static system_shared_lib empty for linux_bionic variant",
|
||||
blueprint: soongCcLibraryStaticPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "libc") + `
|
||||
simpleModule("cc_library", "libc") + `
|
||||
|
||||
cc_library {
|
||||
name: "libm",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
|
|
|
@ -35,19 +35,16 @@ cc_defaults {
|
|||
soongCcVersionLibBp = `
|
||||
cc_library_static {
|
||||
name: "libbuildversion",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`
|
||||
|
||||
soongCcProtoLibraries = `
|
||||
cc_library {
|
||||
name: "libprotobuf-cpp-lite",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libprotobuf-cpp-full",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`
|
||||
|
||||
soongCcProtoPreamble = soongCcLibraryPreamble + soongCcProtoLibraries
|
||||
|
@ -55,6 +52,7 @@ cc_library {
|
|||
|
||||
func runCcLibraryTestCase(t *testing.T, tc Bp2buildTestCase) {
|
||||
t.Helper()
|
||||
tc.StubbedBuildDefinitions = append(tc.StubbedBuildDefinitions, "libprotobuf-cpp-lite", "libprotobuf-cpp-full")
|
||||
RunBp2BuildTestCase(t, registerCcLibraryModuleTypes, tc)
|
||||
}
|
||||
|
||||
|
@ -73,6 +71,7 @@ func TestCcLibrarySimple(t *testing.T) {
|
|||
Description: "cc_library - simple example",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"//build/soong/cc/libbuildversion:libbuildversion", "some-headers"},
|
||||
Filesystem: map[string]string{
|
||||
soongCcVersionLibBpPath: soongCcVersionLibBp,
|
||||
"android.cpp": "",
|
||||
|
@ -95,7 +94,7 @@ func TestCcLibrarySimple(t *testing.T) {
|
|||
"foo-dir/a.h": "",
|
||||
},
|
||||
Blueprint: soongCcLibraryPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_headers", "some-headers") + `
|
||||
simpleModule("cc_library_headers", "some-headers") + `
|
||||
cc_library {
|
||||
name: "foo-lib",
|
||||
srcs: ["impl.cpp"],
|
||||
|
@ -169,6 +168,7 @@ func TestCcLibraryTrimmedLdAndroid(t *testing.T) {
|
|||
Description: "cc_library - trimmed example of //bionic/linker:ld-android",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"libc_headers"},
|
||||
Filesystem: map[string]string{
|
||||
"ld-android.cpp": "",
|
||||
"linked_list.h": "",
|
||||
|
@ -177,7 +177,7 @@ func TestCcLibraryTrimmedLdAndroid(t *testing.T) {
|
|||
"linker_cfi.h": "",
|
||||
},
|
||||
Blueprint: soongCcLibraryPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_headers", "libc_headers") + `
|
||||
simpleModule("cc_library_headers", "libc_headers") + `
|
||||
cc_library {
|
||||
name: "fake-ld-android",
|
||||
srcs: ["ld_android.cpp"],
|
||||
|
@ -320,54 +320,49 @@ cc_library {
|
|||
|
||||
cc_library_static {
|
||||
name: "static_dep_for_shared",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "static_dep_for_static",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "static_dep_for_both",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_for_shared",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_for_static",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_for_both",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_and_static_lib_for_both",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "shared_dep_for_shared",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "shared_dep_for_static",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "shared_dep_for_both",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
StubbedBuildDefinitions: []string{"static_dep_for_shared", "static_dep_for_static",
|
||||
"static_dep_for_both", "whole_static_lib_for_shared", "whole_static_lib_for_static",
|
||||
"whole_static_lib_for_both", "whole_and_static_lib_for_both", "shared_dep_for_shared",
|
||||
"shared_dep_for_static", "shared_dep_for_both",
|
||||
},
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{
|
||||
"copts": `[
|
||||
|
@ -458,24 +453,34 @@ cc_library {
|
|||
},
|
||||
include_build_directory: false,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "static_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "implementation_static_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "static_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "implementation_static_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "static_dep_for_both") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "implementation_static_dep_for_both") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "whole_static_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "not_explicitly_exported_whole_static_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "whole_static_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "not_explicitly_exported_whole_static_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "whole_static_dep_for_both") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "not_explicitly_exported_whole_static_dep_for_both") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "shared_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep_for_shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "shared_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep_for_static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "shared_dep_for_both") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "implementation_shared_dep_for_both"),
|
||||
` + simpleModule("cc_library_static", "static_dep_for_shared") +
|
||||
simpleModule("cc_library_static", "implementation_static_dep_for_shared") +
|
||||
simpleModule("cc_library_static", "static_dep_for_static") +
|
||||
simpleModule("cc_library_static", "implementation_static_dep_for_static") +
|
||||
simpleModule("cc_library_static", "static_dep_for_both") +
|
||||
simpleModule("cc_library_static", "implementation_static_dep_for_both") +
|
||||
simpleModule("cc_library_static", "whole_static_dep_for_shared") +
|
||||
simpleModule("cc_library_static", "not_explicitly_exported_whole_static_dep_for_shared") +
|
||||
simpleModule("cc_library_static", "whole_static_dep_for_static") +
|
||||
simpleModule("cc_library_static", "not_explicitly_exported_whole_static_dep_for_static") +
|
||||
simpleModule("cc_library_static", "whole_static_dep_for_both") +
|
||||
simpleModule("cc_library_static", "not_explicitly_exported_whole_static_dep_for_both") +
|
||||
simpleModule("cc_library", "shared_dep_for_shared") +
|
||||
simpleModule("cc_library", "implementation_shared_dep_for_shared") +
|
||||
simpleModule("cc_library", "shared_dep_for_static") +
|
||||
simpleModule("cc_library", "implementation_shared_dep_for_static") +
|
||||
simpleModule("cc_library", "shared_dep_for_both") +
|
||||
simpleModule("cc_library", "implementation_shared_dep_for_both"),
|
||||
StubbedBuildDefinitions: []string{"static_dep_for_shared", "implementation_static_dep_for_shared",
|
||||
"static_dep_for_static", "implementation_static_dep_for_static", "static_dep_for_both",
|
||||
"implementation_static_dep_for_both", "whole_static_dep_for_shared",
|
||||
"not_explicitly_exported_whole_static_dep_for_shared", "whole_static_dep_for_static",
|
||||
"not_explicitly_exported_whole_static_dep_for_static", "whole_static_dep_for_both",
|
||||
"not_explicitly_exported_whole_static_dep_for_both", "shared_dep_for_shared",
|
||||
"implementation_shared_dep_for_shared", "shared_dep_for_static",
|
||||
"implementation_shared_dep_for_static", "shared_dep_for_both",
|
||||
"implementation_shared_dep_for_both",
|
||||
},
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{
|
||||
"copts": `[
|
||||
|
@ -550,6 +555,8 @@ func TestCcLibraryWholeStaticLibsAlwaysLink(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Dir: "foo/bar",
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:prebuilt_whole_static_lib_for_shared", "//foo/bar:prebuilt_whole_static_lib_for_static",
|
||||
"//foo/bar:prebuilt_whole_static_lib_for_both"},
|
||||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
cc_library {
|
||||
|
@ -666,6 +673,10 @@ cc_library_static { name: "x86_dep_for_static" }
|
|||
cc_library_static { name: "android_dep_for_shared" }
|
||||
`,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:static_dep_for_shared", "//foo/bar:static_dep_for_static",
|
||||
"//foo/bar:static_dep_for_both", "//foo/bar:arm_static_dep_for_shared", "//foo/bar:arm_whole_static_dep_for_shared",
|
||||
"//foo/bar:arm_shared_dep_for_shared", "//foo/bar:x86_dep_for_static", "//foo/bar:android_dep_for_shared",
|
||||
},
|
||||
Blueprint: soongCcLibraryPreamble,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_static", "a_bp2build_cc_library_static", AttrNameToString{
|
||||
|
@ -747,6 +758,7 @@ func TestCcLibrarySharedStaticPropsWithMixedSources(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Dir: "foo/bar",
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:shared_filegroup", "//foo/bar:static_filegroup", "//foo/bar:both_filegroup"},
|
||||
Filesystem: map[string]string{
|
||||
"foo/bar/both_source.cpp": "",
|
||||
"foo/bar/both_source.cc": "",
|
||||
|
@ -1018,10 +1030,10 @@ func TestCcLibrarySharedLibs(t *testing.T) {
|
|||
Description: "cc_library shared_libs",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"mylib"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library {
|
||||
name: "mylib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
|
@ -1182,6 +1194,10 @@ func TestCcLibraryExcludeLibs(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"arm_whole_static_lib_excludes", "malloc_not_svelte_whole_static_lib",
|
||||
"arm_static_lib_excludes", "malloc_not_svelte_whole_static_lib_excludes", "arm_shared_lib_excludes",
|
||||
"malloc_not_svelte_static_lib_excludes", "arm_shared_lib_excludes", "malloc_not_svelte_shared_lib",
|
||||
},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library {
|
||||
name: "foo_static",
|
||||
|
@ -1223,37 +1239,30 @@ cc_library {
|
|||
|
||||
cc_library {
|
||||
name: "arm_whole_static_lib_excludes",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "malloc_not_svelte_whole_static_lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "malloc_not_svelte_whole_static_lib_excludes",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "arm_static_lib_excludes",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "malloc_not_svelte_static_lib_excludes",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "arm_shared_lib_excludes",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "malloc_not_svelte_shared_lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: makeCcLibraryTargets("foo_static", AttrNameToString{
|
||||
|
@ -1289,6 +1298,7 @@ func TestCcLibraryProductVariablesHeaderLibs(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"malloc_not_svelte_header_lib"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library {
|
||||
name: "foo_static",
|
||||
|
@ -1303,7 +1313,6 @@ cc_library {
|
|||
|
||||
cc_library {
|
||||
name: "malloc_not_svelte_header_lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: makeCcLibraryTargets("foo_static", AttrNameToString{
|
||||
|
@ -1813,10 +1822,10 @@ func TestCcLibrary_SystemSharedLibsLinuxBionicEmpty(t *testing.T) {
|
|||
Description: "cc_library system_shared_libs empty for linux_bionic variant",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"libc_musl"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
|
@ -1844,6 +1853,7 @@ func TestCcLibrary_SystemSharedLibsBionicEmpty(t *testing.T) {
|
|||
Description: "cc_library system_shared_libs empty for bionic variant",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"libc_musl"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
|
@ -1875,10 +1885,10 @@ func TestCcLibrary_SystemSharedLibsMuslEmpty(t *testing.T) {
|
|||
Description: "cc_library system_shared_lib empty for musl variant",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"libc_musl"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
|
@ -1928,14 +1938,13 @@ func TestCcLibrary_SystemSharedLibsSharedAndRoot(t *testing.T) {
|
|||
Description: "cc_library system_shared_libs set for shared and root",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"libc", "libm"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library {
|
||||
name: "libc",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library {
|
||||
name: "libm",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library {
|
||||
|
@ -2506,6 +2515,7 @@ func TestCcLibraryExternalConvertedProtoFilegroups(t *testing.T) {
|
|||
runCcLibraryTestCase(t, Bp2buildTestCase{
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"//path/to/A:a_fg_proto"},
|
||||
Filesystem: map[string]string{
|
||||
"path/to/A/Android.bp": `
|
||||
filegroup {
|
||||
|
@ -2549,11 +2559,12 @@ func TestCcLibraryProtoFilegroups(t *testing.T) {
|
|||
runCcLibraryTestCase(t, Bp2buildTestCase{
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"a_fg_proto", "b_protos", "c-proto-srcs", "proto-srcs-d"},
|
||||
Blueprint: soongCcProtoPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("filegroup", "a_fg_proto") +
|
||||
SimpleModuleDoNotConvertBp2build("filegroup", "b_protos") +
|
||||
SimpleModuleDoNotConvertBp2build("filegroup", "c-proto-srcs") +
|
||||
SimpleModuleDoNotConvertBp2build("filegroup", "proto-srcs-d") + `
|
||||
simpleModule("filegroup", "a_fg_proto") +
|
||||
simpleModule("filegroup", "b_protos") +
|
||||
simpleModule("filegroup", "c-proto-srcs") +
|
||||
simpleModule("filegroup", "proto-srcs-d") + `
|
||||
cc_library {
|
||||
name: "a",
|
||||
srcs: [":a_fg_proto"],
|
||||
|
@ -2849,11 +2860,11 @@ func TestCcLibraryStubsAcrossConfigsDuplicatesRemoved(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
"bar.map.txt": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"barlib"},
|
||||
Blueprint: `
|
||||
cc_library {
|
||||
name: "barlib",
|
||||
stubs: { symbol_file: "bar.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library {
|
||||
name: "foolib",
|
||||
|
@ -2884,16 +2895,15 @@ func TestCcLibraryExcludesLibsHost(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
"bar.map.txt": "",
|
||||
},
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("cc_library", "bazlib") + `
|
||||
StubbedBuildDefinitions: []string{"bazlib", "quxlib", "barlib"},
|
||||
Blueprint: simpleModule("cc_library", "bazlib") + `
|
||||
cc_library {
|
||||
name: "quxlib",
|
||||
stubs: { symbol_file: "bar.map.txt", versions: ["current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library {
|
||||
name: "barlib",
|
||||
stubs: { symbol_file: "bar.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library {
|
||||
name: "foolib",
|
||||
|
@ -3007,18 +3017,18 @@ func TestCCLibraryRuntimeDeps(t *testing.T) {
|
|||
|
||||
cc_library {
|
||||
name: "foo",
|
||||
runtime_libs: ["foo"],
|
||||
runtime_libs: ["bar"],
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "bar", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
MakeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{
|
||||
"runtime_deps": `[":foo"]`,
|
||||
"runtime_deps": `[":bar"]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
|
||||
"runtime_deps": `[":foo"]`,
|
||||
"runtime_deps": `[":bar"]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
|
@ -3229,6 +3239,7 @@ func TestCcLibraryWithNonAdjacentAidlFilegroup(t *testing.T) {
|
|||
Description: "cc_library with non aidl filegroup",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"//path/to/A:A_aidl"},
|
||||
Filesystem: map[string]string{
|
||||
"path/to/A/Android.bp": `
|
||||
filegroup {
|
||||
|
@ -3518,6 +3529,7 @@ func TestCcLibraryWithAidlAndLibs(t *testing.T) {
|
|||
Description: "cc_aidl_library depends on libs from parent cc_library_static",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"bar-static", "baz-static", "bar-shared", "baz-shared"},
|
||||
Blueprint: `
|
||||
cc_library_static {
|
||||
name: "foo",
|
||||
|
@ -3539,10 +3551,10 @@ cc_library_static {
|
|||
"baz-shared",
|
||||
],
|
||||
}` +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "bar-static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "baz-static") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "bar-shared") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "baz-shared"),
|
||||
simpleModule("cc_library_static", "bar-static") +
|
||||
simpleModule("cc_library_static", "baz-static") +
|
||||
simpleModule("cc_library", "bar-shared") +
|
||||
simpleModule("cc_library", "baz-shared"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("aidl_library", "foo_aidl_library", AttrNameToString{
|
||||
"srcs": `["Foo.aidl"]`,
|
||||
|
@ -4086,17 +4098,16 @@ func TestCcLibraryInApexWithStubSharedLibs(t *testing.T) {
|
|||
Description: "cc_library with in apex with stub shared_libs and export_shared_lib_headers",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"barlib", "bazlib"},
|
||||
Blueprint: `
|
||||
cc_library {
|
||||
name: "barlib",
|
||||
stubs: { symbol_file: "bar.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
apex_available: ["//apex_available:platform",],
|
||||
}
|
||||
cc_library {
|
||||
name: "bazlib",
|
||||
stubs: { symbol_file: "bar.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
apex_available: ["//apex_available:platform",],
|
||||
}
|
||||
cc_library {
|
||||
|
@ -4472,6 +4483,7 @@ func TestCcLibraryYaccConversion(t *testing.T) {
|
|||
Description: "cc_library is built from .y/.yy files",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"staticlib", "sharedlib"},
|
||||
Blueprint: soongCcLibraryPreamble + `cc_library {
|
||||
name: "a",
|
||||
srcs: [
|
||||
|
@ -4488,11 +4500,9 @@ func TestCcLibraryYaccConversion(t *testing.T) {
|
|||
}
|
||||
cc_library_static {
|
||||
name: "staticlib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library {
|
||||
name: "sharedlib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -4746,7 +4756,7 @@ cc_library_static {
|
|||
canonical_path_from_root: true,
|
||||
}
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
` + simpleModule("cc_library", "libprotobuf-cpp-lite"),
|
||||
Filesystem: map[string]string{
|
||||
"bar/Android.bp": "",
|
||||
"baz/subbaz/Android.bp": "",
|
||||
|
@ -4814,7 +4824,7 @@ cc_library_static {
|
|||
canonical_path_from_root: false,
|
||||
}
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
` + simpleModule("cc_library", "libprotobuf-cpp-lite"),
|
||||
Filesystem: map[string]string{
|
||||
"bar/Android.bp": "",
|
||||
"baz/subbaz/Android.bp": "",
|
||||
|
@ -4884,7 +4894,7 @@ cc_library_static {
|
|||
include_dirs: ["bar"],
|
||||
}
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
` + simpleModule("cc_library", "libprotobuf-cpp-lite"),
|
||||
Filesystem: map[string]string{
|
||||
"bar/Android.bp": "",
|
||||
"bar/bar.proto": "",
|
||||
|
@ -4955,7 +4965,7 @@ cc_library_static {
|
|||
include_dirs: ["baz"],
|
||||
}
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
` + simpleModule("cc_library", "libprotobuf-cpp-lite"),
|
||||
Filesystem: map[string]string{
|
||||
"bar/Android.bp": "", // package boundary
|
||||
"baz/Android.bp": "",
|
||||
|
@ -4990,7 +5000,14 @@ func TestProtoLocalIncludeDirs(t *testing.T) {
|
|||
Description: "cc_library depends on .proto files using proto.local_include_dirs",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
Blueprint: `
|
||||
cc_library {
|
||||
name: "libprotobuf-cpp-lite",
|
||||
// TODO: b/285631638 - A stubbed proto library dependency does not work as a protolib
|
||||
// dependency of cc_library_static.
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
Filesystem: map[string]string{
|
||||
"foo/Android.bp": `cc_library_static {
|
||||
name: "foo",
|
||||
|
@ -5047,7 +5064,7 @@ func TestProtoLibraryForIncludeDirsIsOsAgnostic(t *testing.T) {
|
|||
Description: "proto_library generated for proto.include_dirs is compatible for all axes",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite") + `
|
||||
Blueprint: simpleModule("cc_library", "libprotobuf-cpp-lite") + `
|
||||
cc_library {
|
||||
name: "foo_device",
|
||||
device_supported: true, // this is the default behavior, but added explicitly here for illustration
|
||||
|
|
|
@ -131,30 +131,26 @@ func TestCcLibraryHeadersOsSpecificHeader(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"android-lib", "base-lib", "darwin-lib",
|
||||
"linux-lib", "linux_bionic-lib", "windows-lib"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library_headers {
|
||||
name: "android-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "base-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "darwin-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "linux-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "linux_bionic-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "windows-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@ -205,14 +201,13 @@ func TestCcLibraryHeadersOsSpecficHeaderLibsExportHeaderLibHeaders(t *testing.T)
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"android-lib", "exported-lib"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library_headers {
|
||||
name: "android-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "exported-lib",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@ -333,6 +328,7 @@ func TestCcLibraryHeadersExportedStaticLibHeadersReexported(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"foo_export"},
|
||||
Blueprint: soongCcLibraryHeadersPreamble + `
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@ -340,7 +336,7 @@ cc_library_headers {
|
|||
static_libs: ["foo_export", "foo_no_reexport"],
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
|
||||
` + simpleModule("cc_library_headers", "foo_export"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{
|
||||
"deps": `[":foo_export"]`,
|
||||
|
@ -355,6 +351,7 @@ func TestCcLibraryHeadersExportedSharedLibHeadersReexported(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"foo_export"},
|
||||
Blueprint: soongCcLibraryHeadersPreamble + `
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@ -362,7 +359,7 @@ cc_library_headers {
|
|||
shared_libs: ["foo_export", "foo_no_reexport"],
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
|
||||
` + simpleModule("cc_library_headers", "foo_export"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{
|
||||
"deps": `[":foo_export"]`,
|
||||
|
@ -377,6 +374,7 @@ func TestCcLibraryHeadersExportedHeaderLibHeadersReexported(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"foo_export"},
|
||||
Blueprint: soongCcLibraryHeadersPreamble + `
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@ -384,7 +382,7 @@ cc_library_headers {
|
|||
header_libs: ["foo_export", "foo_no_reexport"],
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
|
||||
` + simpleModule("cc_library_headers", "foo_export"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{
|
||||
"deps": `[":foo_export"]`,
|
||||
|
@ -399,13 +397,14 @@ func TestCcLibraryHeadersWholeStaticLibsReexported(t *testing.T) {
|
|||
ModuleTypeUnderTest: "cc_library_headers",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"foo_export"},
|
||||
Blueprint: soongCcLibraryHeadersPreamble + `
|
||||
cc_library_headers {
|
||||
name: "foo_headers",
|
||||
whole_static_libs: ["foo_export"],
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"),
|
||||
` + simpleModule("cc_library_headers", "foo_export"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_headers", "foo_headers", AttrNameToString{
|
||||
"deps": `[":foo_export"]`,
|
||||
|
|
|
@ -38,6 +38,7 @@ func registerCcLibrarySharedModuleTypes(ctx android.RegistrationContext) {
|
|||
func runCcLibrarySharedTestCase(t *testing.T, tc Bp2buildTestCase) {
|
||||
t.Helper()
|
||||
t.Parallel()
|
||||
tc.StubbedBuildDefinitions = append(tc.StubbedBuildDefinitions, "libbuildversion", "libprotobuf-cpp-lite", "libprotobuf-cpp-full")
|
||||
(&tc).ModuleTypeUnderTest = "cc_library_shared"
|
||||
(&tc).ModuleTypeUnderTestFactory = cc.LibrarySharedFactory
|
||||
RunBp2BuildTestCase(t, registerCcLibrarySharedModuleTypes, tc)
|
||||
|
@ -45,7 +46,8 @@ func runCcLibrarySharedTestCase(t *testing.T, tc Bp2buildTestCase) {
|
|||
|
||||
func TestCcLibrarySharedSimple(t *testing.T) {
|
||||
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_shared simple overall test",
|
||||
Description: "cc_library_shared simple overall test",
|
||||
StubbedBuildDefinitions: []string{"header_lib_1", "header_lib_2", "whole_static_lib_1", "whole_static_lib_2", "shared_lib_1", "shared_lib_2"},
|
||||
Filesystem: map[string]string{
|
||||
// NOTE: include_dir headers *should not* appear in Bazel hdrs later (?)
|
||||
"include_dir_1/include_dir_1_a.h": "",
|
||||
|
@ -70,37 +72,31 @@ func TestCcLibrarySharedSimple(t *testing.T) {
|
|||
cc_library_headers {
|
||||
name: "header_lib_1",
|
||||
export_include_dirs: ["header_lib_1"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
name: "header_lib_2",
|
||||
export_include_dirs: ["header_lib_2"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_shared {
|
||||
name: "shared_lib_1",
|
||||
srcs: ["shared_lib_1.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_shared {
|
||||
name: "shared_lib_2",
|
||||
srcs: ["shared_lib_2.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_1",
|
||||
srcs: ["whole_static_lib_1.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_2",
|
||||
srcs: ["whole_static_lib_2.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_shared {
|
||||
|
@ -186,16 +182,15 @@ 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{},
|
||||
Description: "cc_library_shared arch-specific shared_libs with whole_static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"static_dep", "shared_dep"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_static {
|
||||
name: "static_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "shared_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "foo_shared",
|
||||
|
@ -510,6 +505,7 @@ func TestCcLibrarySharedUseVersionLib(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
soongCcVersionLibBpPath: soongCcVersionLibBp,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//build/soong/cc/libbuildversion:libbuildversion"},
|
||||
Blueprint: soongCcProtoPreamble + `cc_library_shared {
|
||||
name: "foo",
|
||||
use_version_lib: true,
|
||||
|
@ -564,11 +560,11 @@ func TestCcLibrarySharedStubs_UseImplementationInSameApex(t *testing.T) {
|
|||
Description: "cc_library_shared stubs",
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "a",
|
||||
stubs: { symbol_file: "a.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
apex_available: ["made_up_apex"],
|
||||
}
|
||||
|
@ -593,11 +589,11 @@ func TestCcLibrarySharedStubs_UseStubsInDifferentApex(t *testing.T) {
|
|||
Description: "cc_library_shared stubs",
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "a",
|
||||
stubs: { symbol_file: "a.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
apex_available: ["apex_a"],
|
||||
}
|
||||
|
@ -627,19 +623,18 @@ func TestCcLibrarySharedStubs_UseStubsFromMultipleApiDomains(t *testing.T) {
|
|||
Description: "cc_library_shared stubs",
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"libplatform_stable", "libapexfoo_stable"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "libplatform_stable",
|
||||
stubs: { symbol_file: "libplatform_stable.map.txt", versions: ["28", "29", "current"] },
|
||||
apex_available: ["//apex_available:platform"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "libapexfoo_stable",
|
||||
stubs: { symbol_file: "libapexfoo_stable.map.txt", versions: ["28", "29", "current"] },
|
||||
apex_available: ["apexfoo"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
}
|
||||
cc_library_shared {
|
||||
|
@ -684,11 +679,11 @@ func TestCcLibrarySharedStubs_IgnorePlatformAvailable(t *testing.T) {
|
|||
Description: "cc_library_shared stubs",
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "a",
|
||||
stubs: { symbol_file: "a.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
apex_available: ["//apex_available:platform", "apex_a"],
|
||||
}
|
||||
|
@ -720,11 +715,11 @@ func TestCcLibraryDoesNotDropStubDepIfNoVariationAcrossAxis(t *testing.T) {
|
|||
Description: "cc_library depeends on impl for all configurations",
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "a",
|
||||
stubs: { symbol_file: "a.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
apex_available: ["//apex_available:platform"],
|
||||
}
|
||||
cc_library_shared {
|
||||
|
@ -747,11 +742,11 @@ func TestCcLibrarySharedStubs_MultipleApexAvailable(t *testing.T) {
|
|||
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
|
||||
ModuleTypeUnderTest: "cc_library_shared",
|
||||
ModuleTypeUnderTestFactory: cc.LibrarySharedFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: soongCcLibrarySharedPreamble + `
|
||||
cc_library_shared {
|
||||
name: "a",
|
||||
stubs: { symbol_file: "a.map.txt", versions: ["28", "29", "current"] },
|
||||
bazel_module: { bp2build_available: false },
|
||||
include_build_directory: false,
|
||||
apex_available: ["//apex_available:platform", "apex_a", "apex_b"],
|
||||
}
|
||||
|
@ -929,14 +924,14 @@ func TestCCLibrarySharedRuntimeDeps(t *testing.T) {
|
|||
|
||||
cc_library_shared {
|
||||
name: "foo",
|
||||
runtime_libs: ["foo"],
|
||||
runtime_libs: ["bar"],
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "bar", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
|
||||
"runtime_deps": `[":foo"]`,
|
||||
"runtime_deps": `[":bar"]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
|
|
|
@ -96,41 +96,37 @@ func TestCcLibraryStaticSimple(t *testing.T) {
|
|||
"implicit_include_1.h": "",
|
||||
"implicit_include_2.h": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"header_lib_1", "header_lib_2",
|
||||
"static_lib_1", "static_lib_2", "whole_static_lib_1", "whole_static_lib_2"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_headers {
|
||||
name: "header_lib_1",
|
||||
export_include_dirs: ["header_lib_1"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
name: "header_lib_2",
|
||||
export_include_dirs: ["header_lib_2"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "static_lib_1",
|
||||
srcs: ["static_lib_1.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "static_lib_2",
|
||||
srcs: ["static_lib_2.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_1",
|
||||
srcs: ["whole_static_lib_1.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
name: "whole_static_lib_2",
|
||||
srcs: ["whole_static_lib_2.cc"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -392,16 +388,15 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticArchSpecificStaticLib(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static arch-specific static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
Description: "cc_library_static arch-specific static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"static_dep", "static_dep2"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "static_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "static_dep2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
|
@ -425,16 +420,15 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticOsSpecificStaticLib(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static os-specific static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
Description: "cc_library_static os-specific static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"static_dep", "static_dep2"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "static_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "static_dep2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
|
@ -460,22 +454,20 @@ func TestCcLibraryStaticBaseArchOsSpecificStaticLib(t *testing.T) {
|
|||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static base, arch and os-specific static_libs",
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"static_dep", "static_dep2", "static_dep3",
|
||||
"static_dep4"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "static_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "static_dep2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "static_dep3",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "static_dep4",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
|
@ -756,12 +748,12 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticMultipleDepSameName(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static multiple dep same name panic",
|
||||
Filesystem: map[string]string{},
|
||||
Description: "cc_library_static multiple dep same name panic",
|
||||
Filesystem: map[string]string{},
|
||||
StubbedBuildDefinitions: []string{"static_dep"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "static_dep",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
|
@ -961,17 +953,16 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticGeneratedHeadersAllPartitions(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"generated_hdr", "export_generated_hdr"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
genrule {
|
||||
name: "generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
genrule {
|
||||
name: "export_generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1005,19 +996,18 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticGeneratedHeadersMultipleExports(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"generated_hdr", "export_generated_hdr"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
genrule {
|
||||
name: "generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
export_include_dirs: ["foo", "bar"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
genrule {
|
||||
name: "export_generated_hdr",
|
||||
cmd: "nothing to see here",
|
||||
export_include_dirs: ["a", "b"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1040,22 +1030,26 @@ cc_library_static {
|
|||
func TestCcLibraryStaticArchSrcsExcludeSrcsGeneratedFiles(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static arch srcs/exclude_srcs with generated files",
|
||||
StubbedBuildDefinitions: []string{"//dep:generated_src_other_pkg", "//dep:generated_hdr_other_pkg",
|
||||
"//dep:generated_src_other_pkg_x86", "//dep:generated_hdr_other_pkg_x86", "//dep:generated_hdr_other_pkg_android",
|
||||
"generated_src", "generated_src_not_x86", "generated_src_android", "generated_hdr",
|
||||
},
|
||||
Filesystem: map[string]string{
|
||||
"common.cpp": "",
|
||||
"for-x86.cpp": "",
|
||||
"not-for-x86.cpp": "",
|
||||
"not-for-everything.cpp": "",
|
||||
"dep/Android.bp": SimpleModuleDoNotConvertBp2build("genrule", "generated_src_other_pkg") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_hdr_other_pkg") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_src_other_pkg_x86") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_hdr_other_pkg_x86") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_hdr_other_pkg_android"),
|
||||
"dep/Android.bp": simpleModule("genrule", "generated_src_other_pkg") +
|
||||
simpleModule("genrule", "generated_hdr_other_pkg") +
|
||||
simpleModule("genrule", "generated_src_other_pkg_x86") +
|
||||
simpleModule("genrule", "generated_hdr_other_pkg_x86") +
|
||||
simpleModule("genrule", "generated_hdr_other_pkg_android"),
|
||||
},
|
||||
Blueprint: soongCcLibraryStaticPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_src") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_src_not_x86") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_src_android") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "generated_hdr") + `
|
||||
simpleModule("genrule", "generated_src") +
|
||||
simpleModule("genrule", "generated_src_not_x86") +
|
||||
simpleModule("genrule", "generated_src_android") +
|
||||
simpleModule("genrule", "generated_hdr") + `
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
srcs: ["common.cpp", "not-for-*.cpp"],
|
||||
|
@ -1340,11 +1334,11 @@ cc_library_static {
|
|||
|
||||
func TestStaticLibrary_SystemSharedLibsBionicEmpty(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static system_shared_lib empty for bionic variant",
|
||||
Description: "cc_library_static system_shared_lib empty for bionic variant",
|
||||
StubbedBuildDefinitions: []string{"libc_musl"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1374,11 +1368,11 @@ func TestStaticLibrary_SystemSharedLibsLinuxBionicEmpty(t *testing.T) {
|
|||
// 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",
|
||||
Description: "cc_library_static system_shared_lib empty for linux_bionic variant",
|
||||
StubbedBuildDefinitions: []string{"libc_musl"},
|
||||
Blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1458,12 +1452,12 @@ cc_library_static {
|
|||
|
||||
func TestStaticLibrary_SystemSharedLibsBionic(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static system_shared_libs set for bionic variant",
|
||||
Description: "cc_library_static system_shared_libs set for bionic variant",
|
||||
StubbedBuildDefinitions: []string{"libc", "libc_musl"},
|
||||
Blueprint: soongCcLibraryStaticPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "libc") + `
|
||||
simpleModule("cc_library", "libc") + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1491,13 +1485,13 @@ 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",
|
||||
Description: "cc_library_static system_shared_libs set for root and linux_bionic variant",
|
||||
StubbedBuildDefinitions: []string{"libc", "libm", "libc_musl"},
|
||||
Blueprint: soongCcLibraryStaticPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "libc") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "libm") + `
|
||||
simpleModule("cc_library", "libc") +
|
||||
simpleModule("cc_library", "libm") + `
|
||||
cc_library {
|
||||
name: "libc_musl",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_library_static {
|
||||
|
@ -1525,9 +1519,10 @@ cc_library_static {
|
|||
|
||||
func TestCcLibrarystatic_SystemSharedLibUsedAsDep(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_static system_shared_lib empty for linux_bionic variant",
|
||||
Description: "cc_library_static system_shared_lib empty for linux_bionic variant",
|
||||
StubbedBuildDefinitions: []string{"libc", "libm"},
|
||||
Blueprint: soongCcLibraryStaticPreamble +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "libc") + `
|
||||
simpleModule("cc_library", "libc") + `
|
||||
|
||||
cc_library {
|
||||
name: "libm",
|
||||
|
@ -1535,7 +1530,6 @@ cc_library {
|
|||
symbol_file: "libm.map.txt",
|
||||
versions: ["current"],
|
||||
},
|
||||
bazel_module: { bp2build_available: false },
|
||||
apex_available: ["com.android.runtime"],
|
||||
}
|
||||
|
||||
|
@ -1613,6 +1607,7 @@ cc_library_static {
|
|||
|
||||
func TestCcLibraryStaticProto(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
Blueprint: soongCcProtoPreamble + `cc_library_static {
|
||||
name: "foo",
|
||||
srcs: ["foo.proto"],
|
||||
|
@ -1639,6 +1634,7 @@ func TestCcLibraryStaticUseVersionLib(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
soongCcVersionLibBpPath: soongCcVersionLibBp,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//build/soong/cc/libbuildversion:libbuildversion", "libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
Blueprint: soongCcProtoPreamble + `cc_library_static {
|
||||
name: "foo",
|
||||
use_version_lib: true,
|
||||
|
@ -1658,6 +1654,8 @@ func TestCcLibraryStaticUseVersionLibHasDep(t *testing.T) {
|
|||
Filesystem: map[string]string{
|
||||
soongCcVersionLibBpPath: soongCcVersionLibBp,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//build/soong/cc/libbuildversion:libbuildversion", "libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
|
||||
Blueprint: soongCcProtoPreamble + `cc_library_static {
|
||||
name: "foo",
|
||||
use_version_lib: true,
|
||||
|
@ -1674,6 +1672,7 @@ func TestCcLibraryStaticUseVersionLibHasDep(t *testing.T) {
|
|||
|
||||
func TestCcLibraryStaticStdInFlags(t *testing.T) {
|
||||
runCcLibraryStaticTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"libprotobuf-cpp-full", "libprotobuf-cpp-lite"},
|
||||
Blueprint: soongCcProtoPreamble + `cc_library_static {
|
||||
name: "foo",
|
||||
cflags: ["-std=candcpp"],
|
||||
|
@ -1767,14 +1766,14 @@ func TestCCLibraryStaticRuntimeDeps(t *testing.T) {
|
|||
|
||||
cc_library_static {
|
||||
name: "foo",
|
||||
runtime_libs: ["foo"],
|
||||
runtime_libs: ["bar"],
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "bar", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
MakeBazelTarget("cc_library_static", "foo", AttrNameToString{
|
||||
"runtime_deps": `[":foo"]`,
|
||||
"runtime_deps": `[":bar"]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
|
@ -2260,6 +2259,7 @@ func TestCcLibraryWithProtoInGeneratedSrcs(t *testing.T) {
|
|||
Description: "cc_library with a .proto file generated from a genrule",
|
||||
ModuleTypeUnderTest: "cc_library_static",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
StubbedBuildDefinitions: []string{"libprotobuf-cpp-lite"},
|
||||
Blueprint: soongCcLibraryPreamble + `
|
||||
cc_library_static {
|
||||
name: "mylib",
|
||||
|
@ -2269,7 +2269,7 @@ genrule {
|
|||
name: "myprotogen",
|
||||
out: ["myproto.proto"],
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "libprotobuf-cpp-lite"),
|
||||
` + simpleModule("cc_library", "libprotobuf-cpp-lite"),
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_static", "mylib", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
|
|
@ -317,7 +317,8 @@ func TestCcObjectLinkerScript(t *testing.T) {
|
|||
|
||||
func TestCcObjectDepsAndLinkerScriptSelects(t *testing.T) {
|
||||
runCcObjectTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_object setting deps and linker_script across archs",
|
||||
Description: "cc_object setting deps and linker_script across archs",
|
||||
StubbedBuildDefinitions: []string{"x86_obj", "x86_64_obj", "arm_obj"},
|
||||
Blueprint: `cc_object {
|
||||
name: "foo",
|
||||
srcs: ["base.cpp"],
|
||||
|
@ -343,7 +344,6 @@ cc_object {
|
|||
system_shared_libs: [],
|
||||
srcs: ["x86.cpp"],
|
||||
include_build_directory: false,
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_object {
|
||||
|
@ -351,7 +351,6 @@ cc_object {
|
|||
system_shared_libs: [],
|
||||
srcs: ["x86_64.cpp"],
|
||||
include_build_directory: false,
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
cc_object {
|
||||
|
@ -359,7 +358,6 @@ cc_object {
|
|||
system_shared_libs: [],
|
||||
srcs: ["arm.cpp"],
|
||||
include_build_directory: false,
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
|
|
@ -24,10 +24,11 @@ import (
|
|||
)
|
||||
|
||||
type ccTestBp2buildTestCase struct {
|
||||
description string
|
||||
blueprint string
|
||||
filesystem map[string]string
|
||||
targets []testBazelTarget
|
||||
description string
|
||||
blueprint string
|
||||
filesystem map[string]string
|
||||
targets []testBazelTarget
|
||||
stubbedBuildDefinitions []string
|
||||
}
|
||||
|
||||
func registerCcTestModuleTypes(ctx android.RegistrationContext) {
|
||||
|
@ -52,6 +53,7 @@ func runCcTestTestCase(t *testing.T, testCase ccTestBp2buildTestCase) {
|
|||
ModuleTypeUnderTestFactory: cc.TestFactory,
|
||||
Description: description,
|
||||
Blueprint: testCase.blueprint,
|
||||
StubbedBuildDefinitions: testCase.stubbedBuildDefinitions,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -59,6 +61,8 @@ func runCcTestTestCase(t *testing.T, testCase ccTestBp2buildTestCase) {
|
|||
func TestBasicCcTest(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "basic cc_test with commonly used attributes",
|
||||
stubbedBuildDefinitions: []string{"libbuildversion", "libprotobuf-cpp-lite", "libprotobuf-cpp-full",
|
||||
"foolib", "hostlib", "data_mod", "cc_bin", "cc_lib", "cc_test_lib2", "libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -89,14 +93,14 @@ cc_test_library {
|
|||
host_supported: true,
|
||||
include_build_directory: false,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library", "foolib") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "hostlib") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "data_mod") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_binary", "cc_bin") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "cc_lib") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_test_library", "cc_test_lib2") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library", "foolib") +
|
||||
simpleModule("cc_library_static", "hostlib") +
|
||||
simpleModule("genrule", "data_mod") +
|
||||
simpleModule("cc_binary", "cc_bin") +
|
||||
simpleModule("cc_library", "cc_lib") +
|
||||
simpleModule("cc_test_library", "cc_test_lib2") +
|
||||
simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_library_shared", "cc_test_lib1", AttrNameToString{}},
|
||||
{"cc_library_static", "cc_test_lib1_bp2build_cc_library_static", AttrNameToString{}},
|
||||
|
@ -188,7 +192,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_TestOptions_Tags(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test with test_options.tags converted to tags",
|
||||
description: "cc test with test_options.tags converted to tags",
|
||||
stubbedBuildDefinitions: []string{"libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -196,8 +201,8 @@ cc_test {
|
|||
srcs: ["test.cpp"],
|
||||
test_options: { tags: ["no-remote"] },
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"tags": `["no-remote"]`,
|
||||
|
@ -230,14 +235,15 @@ func TestCcTest_TestConfig(t *testing.T) {
|
|||
filesystem: map[string]string{
|
||||
"test_config.xml": "",
|
||||
},
|
||||
stubbedBuildDefinitions: []string{"libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
srcs: ["test.cpp"],
|
||||
test_config: "test_config.xml",
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -269,13 +275,14 @@ func TestCcTest_TestConfigAndroidTestXML(t *testing.T) {
|
|||
"AndroidTest.xml": "",
|
||||
"DynamicConfig.xml": "",
|
||||
},
|
||||
stubbedBuildDefinitions: []string{"libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
srcs: ["test.cpp"],
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -307,6 +314,7 @@ func TestCcTest_TestConfigTemplateOptions(t *testing.T) {
|
|||
filesystem: map[string]string{
|
||||
"test_config_template.xml": "",
|
||||
},
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -315,8 +323,8 @@ cc_test {
|
|||
auto_gen_config: true,
|
||||
isolated: true,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"auto_generate_test_config": "True",
|
||||
|
@ -347,15 +355,16 @@ cc_test {
|
|||
|
||||
func TestCcTest_WithExplicitGTestDepInAndroidBp(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that lists libgtest in Android.bp should not have dups of libgtest in BUILD file",
|
||||
description: "cc test that lists libgtest in Android.bp should not have dups of libgtest in BUILD file",
|
||||
stubbedBuildDefinitions: []string{"libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
srcs: ["test.cpp"],
|
||||
static_libs: ["libgtest"],
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -382,15 +391,16 @@ cc_test {
|
|||
|
||||
func TestCcTest_WithIsolatedTurnedOn(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that sets `isolated: true` should run with ligtest_isolated_main instead of libgtest_main",
|
||||
description: "cc test that sets `isolated: true` should run with ligtest_isolated_main instead of libgtest_main",
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
srcs: ["test.cpp"],
|
||||
isolated: true,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -415,7 +425,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_GtestExplicitlySpecifiedInAndroidBp(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "If `gtest` is explicit in Android.bp, it should be explicit in BUILD files as well",
|
||||
description: "If `gtest` is explicit in Android.bp, it should be explicit in BUILD files as well",
|
||||
stubbedBuildDefinitions: []string{"libgtest_main", "libgtest"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest_with_gtest",
|
||||
|
@ -425,8 +436,8 @@ cc_test {
|
|||
name: "mytest_with_no_gtest",
|
||||
gtest: false,
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest"),
|
||||
` + simpleModule("cc_library_static", "libgtest_main") +
|
||||
simpleModule("cc_library_static", "libgtest"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest_with_gtest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -466,7 +477,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_DisableMemtagHeap(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that disable memtag_heap",
|
||||
description: "cc test that disable memtag_heap",
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -477,8 +489,8 @@ cc_test {
|
|||
memtag_heap: false,
|
||||
},
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -499,7 +511,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_RespectArm64MemtagHeap(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that disable memtag_heap",
|
||||
description: "cc test that disable memtag_heap",
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -513,8 +526,8 @@ cc_test {
|
|||
}
|
||||
},
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -535,7 +548,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_IgnoreNoneArm64MemtagHeap(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that disable memtag_heap",
|
||||
description: "cc test that disable memtag_heap",
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -549,8 +563,8 @@ cc_test {
|
|||
}
|
||||
},
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
@ -574,7 +588,8 @@ cc_test {
|
|||
|
||||
func TestCcTest_Arm64MemtagHeapOverrideNoConfigOne(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test that disable memtag_heap",
|
||||
description: "cc test that disable memtag_heap",
|
||||
stubbedBuildDefinitions: []string{"libgtest_isolated_main", "liblog"},
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
|
@ -594,8 +609,8 @@ cc_test {
|
|||
}
|
||||
},
|
||||
}
|
||||
` + SimpleModuleDoNotConvertBp2build("cc_library_static", "libgtest_isolated_main") +
|
||||
SimpleModuleDoNotConvertBp2build("cc_library", "liblog"),
|
||||
` + simpleModule("cc_library_static", "libgtest_isolated_main") +
|
||||
simpleModule("cc_library", "liblog"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"local_includes": `["."]`,
|
||||
|
|
|
@ -93,7 +93,6 @@ func TestGenruleCliVariableReplacement(t *testing.T) {
|
|||
out: ["foo_tool.out"],
|
||||
srcs: ["foo_tool.in"],
|
||||
cmd: "cp $(in) $(out)",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
%s {
|
||||
|
@ -124,6 +123,7 @@ func TestGenruleCliVariableReplacement(t *testing.T) {
|
|||
ModuleTypeUnderTestFactory: tc.factory,
|
||||
Blueprint: fmt.Sprintf(bp, tc.moduleType, tc.moduleType),
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
StubbedBuildDefinitions: []string{"foo.tool", "other.tool"},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -262,6 +262,7 @@ func TestGenruleLocationsAbsoluteLabel(t *testing.T) {
|
|||
Blueprint: fmt.Sprintf(bp, tc.moduleType),
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
Filesystem: otherGenruleBp(tc.moduleType),
|
||||
StubbedBuildDefinitions: []string{"//other:foo.tool"},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -326,6 +327,7 @@ func TestGenruleSrcsLocationsAbsoluteLabel(t *testing.T) {
|
|||
Blueprint: fmt.Sprintf(bp, tc.moduleType),
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
Filesystem: otherGenruleBp(tc.moduleType),
|
||||
StubbedBuildDefinitions: []string{"//other:foo.tool", "//other:other.tool"},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -390,6 +392,7 @@ func TestGenruleLocationLabelShouldSubstituteFirstToolLabel(t *testing.T) {
|
|||
Blueprint: fmt.Sprintf(bp, tc.moduleType),
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
Filesystem: otherGenruleBp(tc.moduleType),
|
||||
StubbedBuildDefinitions: []string{"//other:foo.tool", "//other:other.tool"},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -454,6 +457,7 @@ func TestGenruleLocationsLabelShouldSubstituteFirstToolLabel(t *testing.T) {
|
|||
Blueprint: fmt.Sprintf(bp, tc.moduleType),
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
Filesystem: otherGenruleBp(tc.moduleType),
|
||||
StubbedBuildDefinitions: []string{"//other:foo.tool", "//other:other.tool"},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -948,6 +952,7 @@ genrule {
|
|||
ModuleTypeUnderTest: "genrule",
|
||||
ModuleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
ExpectedBazelTargets: expectedBazelTargets,
|
||||
StubbedBuildDefinitions: []string{"//mynamespace/dir:mymodule"},
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ func runJavaBinaryHostTestCase(t *testing.T, tc Bp2buildTestCase) {
|
|||
t.Helper()
|
||||
(&tc).ModuleTypeUnderTest = "java_binary_host"
|
||||
(&tc).ModuleTypeUnderTestFactory = java.BinaryHostFactory
|
||||
tc.StubbedBuildDefinitions = append(tc.StubbedBuildDefinitions, "//other:jni-lib-1")
|
||||
RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("cc_library_host_shared", cc.LibraryHostSharedFactory)
|
||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
||||
|
@ -81,8 +82,9 @@ 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: testFs,
|
||||
Description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.",
|
||||
Filesystem: testFs,
|
||||
StubbedBuildDefinitions: []string{"java-dep-1"},
|
||||
Blueprint: `java_binary_host {
|
||||
name: "java-binary-host-1",
|
||||
static_libs: ["java-dep-1"],
|
||||
|
@ -93,7 +95,6 @@ func TestJavaBinaryHostRuntimeDeps(t *testing.T) {
|
|||
java_library {
|
||||
name: "java-dep-1",
|
||||
srcs: ["a.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -111,8 +112,9 @@ java_library {
|
|||
|
||||
func TestJavaBinaryHostLibs(t *testing.T) {
|
||||
runJavaBinaryHostTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_binary_host with srcs, libs.",
|
||||
Filesystem: testFs,
|
||||
Description: "java_binary_host with srcs, libs.",
|
||||
Filesystem: testFs,
|
||||
StubbedBuildDefinitions: []string{"prebuilt_java-lib-dep-1"},
|
||||
Blueprint: `java_binary_host {
|
||||
name: "java-binary-host-libs",
|
||||
libs: ["java-lib-dep-1"],
|
||||
|
@ -123,7 +125,6 @@ func TestJavaBinaryHostLibs(t *testing.T) {
|
|||
java_import_host{
|
||||
name: "java-lib-dep-1",
|
||||
jars: ["foo.jar"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
|
|
@ -69,6 +69,7 @@ java_library {
|
|||
|
||||
func TestJavaLibraryConvertsStaticLibsToDepsAndExports(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"java-lib-2", "java-lib-3"},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
srcs: ["a.java"],
|
||||
|
@ -82,14 +83,12 @@ java_library {
|
|||
name: "java-lib-2",
|
||||
srcs: ["b.java"],
|
||||
sdk_version: "current",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "java-lib-3",
|
||||
srcs: ["c.java"],
|
||||
sdk_version: "current",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
|
@ -108,6 +107,7 @@ java_library {
|
|||
|
||||
func TestJavaLibraryConvertsStaticLibsToExportsIfNoSrcs(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"java-lib-2"},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
static_libs: ["java-lib-2"],
|
||||
|
@ -118,7 +118,6 @@ func TestJavaLibraryConvertsStaticLibsToExportsIfNoSrcs(t *testing.T) {
|
|||
java_library {
|
||||
name: "java-lib-2",
|
||||
srcs: ["a.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
|
@ -144,6 +143,7 @@ java_library {
|
|||
|
||||
func TestJavaLibraryPlugins(t *testing.T) {
|
||||
runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"java-plugin-1"},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
plugins: ["java-plugin-1"],
|
||||
|
@ -154,7 +154,6 @@ func TestJavaLibraryPlugins(t *testing.T) {
|
|||
java_plugin {
|
||||
name: "java-plugin-1",
|
||||
srcs: ["a.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
|
@ -195,6 +194,7 @@ func TestJavaLibraryJavaVersion(t *testing.T) {
|
|||
|
||||
func TestJavaLibraryErrorproneEnabledManually(t *testing.T) {
|
||||
runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{
|
||||
StubbedBuildDefinitions: []string{"plugin2"},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
srcs: ["a.java"],
|
||||
|
@ -209,7 +209,6 @@ func TestJavaLibraryErrorproneEnabledManually(t *testing.T) {
|
|||
java_plugin {
|
||||
name: "plugin2",
|
||||
srcs: ["a.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
|
@ -420,13 +419,12 @@ func TestJavaLibraryResourcesExcludeFile(t *testing.T) {
|
|||
func TestJavaLibraryResourcesWithMultipleDirs(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
Filesystem: map[string]string{
|
||||
"res/a.res": "",
|
||||
"res1/b.res": "",
|
||||
"res2/b.java": "",
|
||||
"res/a.res": "",
|
||||
"res1/b.res": "",
|
||||
},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
java_resource_dirs: ["res", "res1", "res2"],
|
||||
java_resource_dirs: ["res", "res1"],
|
||||
sdk_version: "current",
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -619,6 +617,7 @@ func TestJavaLibraryAidlNonAdjacentAidlFilegroup(t *testing.T) {
|
|||
Description: "java_library with non adjacent aidl filegroup",
|
||||
ModuleTypeUnderTest: "java_library",
|
||||
ModuleTypeUnderTestFactory: java.LibraryFactory,
|
||||
StubbedBuildDefinitions: []string{"A_aidl"},
|
||||
Filesystem: map[string]string{
|
||||
"path/to/A/Android.bp": `
|
||||
filegroup {
|
||||
|
@ -656,7 +655,7 @@ func TestConvertArmNeonVariant(t *testing.T) {
|
|||
Description: "Android Library - simple arch feature",
|
||||
ModuleTypeUnderTest: "android_library",
|
||||
ModuleTypeUnderTestFactory: java.AndroidLibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "static_lib_dep") + `
|
||||
Blueprint: simpleModule("android_library", "static_lib_dep") + `
|
||||
android_library {
|
||||
name: "TestLib",
|
||||
manifest: "manifest/AndroidManifest.xml",
|
||||
|
@ -694,7 +693,7 @@ func TestConvertMultipleArchFeatures(t *testing.T) {
|
|||
Description: "Android Library - multiple arch features",
|
||||
ModuleTypeUnderTest: "android_library",
|
||||
ModuleTypeUnderTestFactory: java.AndroidLibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "static_lib_dep") + `
|
||||
Blueprint: simpleModule("android_library", "static_lib_dep") + `
|
||||
android_library {
|
||||
name: "TestLib",
|
||||
manifest: "manifest/AndroidManifest.xml",
|
||||
|
@ -740,7 +739,7 @@ func TestConvertExcludeSrcsArchFeature(t *testing.T) {
|
|||
Description: "Android Library - exclude_srcs with arch feature",
|
||||
ModuleTypeUnderTest: "android_library",
|
||||
ModuleTypeUnderTestFactory: java.AndroidLibraryFactory,
|
||||
Blueprint: SimpleModuleDoNotConvertBp2build("android_library", "static_lib_dep") + `
|
||||
Blueprint: simpleModule("android_library", "static_lib_dep") + `
|
||||
android_library {
|
||||
name: "TestLib",
|
||||
manifest: "manifest/AndroidManifest.xml",
|
||||
|
@ -848,33 +847,10 @@ func TestJavaLibraryKotlinCommonSrcs(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestJavaLibraryLibsWithNoSrcs(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_library that has libs but no srcs",
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
libs: ["java-lib-2"],
|
||||
sdk_version: "current",
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
|
||||
java_library{
|
||||
name: "java-lib-2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
"sdk_version": `"current"`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestJavaLibraryArchVariantDeps(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_library with arch variant libs",
|
||||
Description: "java_library with arch variant libs",
|
||||
StubbedBuildDefinitions: []string{"java-lib-2", "java-lib-3", "java-lib-4"},
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
srcs: ["a.java"],
|
||||
|
@ -891,17 +867,14 @@ func TestJavaLibraryArchVariantDeps(t *testing.T) {
|
|||
|
||||
java_library{
|
||||
name: "java-lib-2",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
java_library{
|
||||
name: "java-lib-3",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
java_library{
|
||||
name: "java-lib-4",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -1050,14 +1023,3 @@ filegroup {
|
|||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
})
|
||||
}
|
||||
|
||||
func TestJavaSdkVersionCorePlatformDoesNotConvert(t *testing.T) {
|
||||
runJavaLibraryTestCase(t, Bp2buildTestCase{
|
||||
Blueprint: `java_library {
|
||||
name: "java-lib-1",
|
||||
sdk_version: "core_platform",
|
||||
bazel_module: { bp2build_available: true },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -32,7 +32,8 @@ func runJavaPluginTestCase(t *testing.T, tc Bp2buildTestCase) {
|
|||
|
||||
func TestJavaPlugin(t *testing.T) {
|
||||
runJavaPluginTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_plugin with srcs, libs, static_libs",
|
||||
Description: "java_plugin with srcs, libs, static_libs",
|
||||
StubbedBuildDefinitions: []string{"java-lib-1", "java-lib-2"},
|
||||
Blueprint: `java_plugin {
|
||||
name: "java-plug-1",
|
||||
srcs: ["a.java", "b.java"],
|
||||
|
@ -45,13 +46,11 @@ func TestJavaPlugin(t *testing.T) {
|
|||
java_library {
|
||||
name: "java-lib-1",
|
||||
srcs: ["b.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "java-lib-2",
|
||||
srcs: ["c.java"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_plugin", "java-plug-1", AttrNameToString{
|
||||
|
@ -75,7 +74,8 @@ java_library {
|
|||
|
||||
func TestJavaPluginNoSrcs(t *testing.T) {
|
||||
runJavaPluginTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_plugin without srcs converts (static) libs to deps",
|
||||
Description: "java_plugin without srcs converts (static) libs to deps",
|
||||
StubbedBuildDefinitions: []string{"java-lib-1", "java-lib-2"},
|
||||
Blueprint: `java_plugin {
|
||||
name: "java-plug-1",
|
||||
libs: ["java-lib-1"],
|
||||
|
|
|
@ -37,6 +37,7 @@ func TestPlatformCompatConfig(t *testing.T) {
|
|||
name: "foo",
|
||||
src: ":lib",
|
||||
}`,
|
||||
StubbedBuildDefinitions: []string{"//a/b:lib"},
|
||||
Filesystem: map[string]string{
|
||||
"a/b/Android.bp": `
|
||||
java_library {
|
||||
|
|
|
@ -30,6 +30,7 @@ func TestPythonBinaryHostSimple(t *testing.T) {
|
|||
"b/e.py": "",
|
||||
"files/data.txt": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"bar"},
|
||||
Blueprint: `python_binary_host {
|
||||
name: "foo",
|
||||
main: "a.py",
|
||||
|
@ -42,7 +43,6 @@ func TestPythonBinaryHostSimple(t *testing.T) {
|
|||
python_library_host {
|
||||
name: "bar",
|
||||
srcs: ["b/e.py"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("py_binary", "foo", AttrNameToString{
|
||||
|
@ -196,6 +196,7 @@ func TestPythonBinaryMainIsLabel(t *testing.T) {
|
|||
Description: "python_binary_host main label in same package",
|
||||
ModuleTypeUnderTest: "python_binary_host",
|
||||
ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory,
|
||||
StubbedBuildDefinitions: []string{"a"},
|
||||
Blueprint: `python_binary_host {
|
||||
name: "foo",
|
||||
main: ":a",
|
||||
|
@ -204,7 +205,6 @@ func TestPythonBinaryMainIsLabel(t *testing.T) {
|
|||
|
||||
genrule {
|
||||
name: "a",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
|
@ -282,6 +282,7 @@ func TestPythonBinaryDuplicatesInRequired(t *testing.T) {
|
|||
Description: "python_binary_host duplicates in required attribute of the module and its defaults",
|
||||
ModuleTypeUnderTest: "python_binary_host",
|
||||
ModuleTypeUnderTestFactory: python.PythonBinaryHostFactory,
|
||||
StubbedBuildDefinitions: []string{"r1", "r2"},
|
||||
Blueprint: `python_binary_host {
|
||||
name: "foo",
|
||||
main: "a.py",
|
||||
|
@ -298,8 +299,8 @@ python_defaults {
|
|||
"r1",
|
||||
"r2",
|
||||
],
|
||||
}` + SimpleModuleDoNotConvertBp2build("genrule", "r1") +
|
||||
SimpleModuleDoNotConvertBp2build("genrule", "r2"),
|
||||
}` + simpleModule("genrule", "r1") +
|
||||
simpleModule("genrule", "r2"),
|
||||
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("py_binary", "foo", AttrNameToString{
|
||||
|
|
|
@ -13,12 +13,13 @@ import (
|
|||
type PythonLibBp2Build func(ctx android.TopDownMutatorContext)
|
||||
|
||||
type pythonLibBp2BuildTestCase struct {
|
||||
description string
|
||||
filesystem map[string]string
|
||||
blueprint string
|
||||
expectedBazelTargets []testBazelTarget
|
||||
dir string
|
||||
expectedError error
|
||||
description string
|
||||
filesystem map[string]string
|
||||
blueprint string
|
||||
expectedBazelTargets []testBazelTarget
|
||||
dir string
|
||||
expectedError error
|
||||
stubbedBuildDefinitions []string
|
||||
}
|
||||
|
||||
func convertPythonLibTestCaseToBp2build_Host(tc pythonLibBp2BuildTestCase) Bp2buildTestCase {
|
||||
|
@ -44,12 +45,13 @@ func convertPythonLibTestCaseToBp2build(tc pythonLibBp2BuildTestCase) Bp2buildTe
|
|||
filesystemCopy[k] = v
|
||||
}
|
||||
return Bp2buildTestCase{
|
||||
Description: tc.description,
|
||||
Filesystem: filesystemCopy,
|
||||
Blueprint: tc.blueprint,
|
||||
ExpectedBazelTargets: bp2BuildTargets,
|
||||
Dir: tc.dir,
|
||||
ExpectedErr: tc.expectedError,
|
||||
Description: tc.description,
|
||||
Filesystem: filesystemCopy,
|
||||
Blueprint: tc.blueprint,
|
||||
ExpectedBazelTargets: bp2BuildTargets,
|
||||
Dir: tc.dir,
|
||||
ExpectedErr: tc.expectedError,
|
||||
StubbedBuildDefinitions: tc.stubbedBuildDefinitions,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,6 +106,7 @@ func TestSimplePythonLib(t *testing.T) {
|
|||
"b/e.py": "",
|
||||
"files/data.txt": "",
|
||||
},
|
||||
stubbedBuildDefinitions: []string{"bar"},
|
||||
blueprint: `%s {
|
||||
name: "foo",
|
||||
srcs: ["**/*.py"],
|
||||
|
@ -115,7 +118,6 @@ func TestSimplePythonLib(t *testing.T) {
|
|||
python_library {
|
||||
name: "bar",
|
||||
srcs: ["b/e.py"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
expectedBazelTargets: []testBazelTarget{
|
||||
{
|
||||
|
|
|
@ -15,8 +15,9 @@
|
|||
package bp2build
|
||||
|
||||
import (
|
||||
"android/soong/python"
|
||||
"testing"
|
||||
|
||||
"android/soong/python"
|
||||
)
|
||||
|
||||
func TestPythonTestHostSimple(t *testing.T) {
|
||||
|
@ -31,6 +32,7 @@ func TestPythonTestHostSimple(t *testing.T) {
|
|||
"b/e.py": "",
|
||||
"files/data.txt": "",
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"bar"},
|
||||
Blueprint: `python_test_host {
|
||||
name: "foo",
|
||||
main: "a.py",
|
||||
|
@ -43,7 +45,6 @@ func TestPythonTestHostSimple(t *testing.T) {
|
|||
python_library_host {
|
||||
name: "bar",
|
||||
srcs: ["b/e.py"],
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("py_test", "foo", AttrNameToString{
|
||||
|
|
|
@ -15,10 +15,11 @@
|
|||
package bp2build
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"android/soong/cc"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/cc"
|
||||
)
|
||||
|
||||
func runSoongConfigModuleTypeTest(t *testing.T, tc Bp2buildTestCase) {
|
||||
|
@ -364,9 +365,9 @@ custom_cc_library_static {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library_static { name: "soc_a_dep", bazel_module: { bp2build_available: false } }
|
||||
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 } }
|
||||
cc_library_static { name: "soc_a_dep"}
|
||||
cc_library_static { name: "soc_b_dep"}
|
||||
cc_library_static { name: "soc_default_static_dep"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
|
@ -377,6 +378,7 @@ cc_library_static { name: "soc_default_static_dep", bazel_module: { bp2build_ava
|
|||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:soc_a_dep", "//foo/bar:soc_b_dep", "//foo/bar:soc_default_static_dep"},
|
||||
ExpectedBazelTargets: []string{`cc_library_static(
|
||||
name = "foo",
|
||||
copts = select({
|
||||
|
@ -763,9 +765,9 @@ cc_binary {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library { name: "lib_a", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_a"}
|
||||
cc_library { name: "lib_b"}
|
||||
cc_library { name: "lib_default"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
|
@ -773,6 +775,7 @@ cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
|||
ModuleTypeUnderTest: "cc_binary",
|
||||
ModuleTypeUnderTestFactory: cc.BinaryFactory,
|
||||
Blueprint: bp,
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:lib_a", "//foo/bar:lib_b", "//foo/bar:lib_default"},
|
||||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
},
|
||||
|
@ -852,15 +855,16 @@ cc_binary {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library { name: "lib_a", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_c", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_a"}
|
||||
cc_library { name: "lib_b"}
|
||||
cc_library { name: "lib_c"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
Description: "soong config variables - generates selects for library_linking_strategy",
|
||||
ModuleTypeUnderTest: "cc_binary",
|
||||
ModuleTypeUnderTestFactory: cc.BinaryFactory,
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:lib_a", "//foo/bar:lib_b", "//foo/bar:lib_c"},
|
||||
Blueprint: bp,
|
||||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
|
@ -949,9 +953,9 @@ cc_binary {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library { name: "lib_a", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_a"}
|
||||
cc_library { name: "lib_b"}
|
||||
cc_library { name: "lib_default"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
|
@ -962,6 +966,7 @@ cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
|||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:lib_a", "//foo/bar:lib_b", "//foo/bar:lib_default"},
|
||||
ExpectedBazelTargets: []string{`cc_binary(
|
||||
name = "library_linking_strategy_sample_binary",
|
||||
deps = select({
|
||||
|
@ -1031,8 +1036,8 @@ cc_binary {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library { name: "lib_a", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_a"}
|
||||
cc_library { name: "lib_b"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
|
@ -1040,6 +1045,7 @@ cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
|||
ModuleTypeUnderTest: "cc_binary",
|
||||
ModuleTypeUnderTestFactory: cc.BinaryFactory,
|
||||
Blueprint: bp,
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:lib_a", "//foo/bar:lib_b"},
|
||||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
},
|
||||
|
@ -1118,9 +1124,9 @@ cc_binary {
|
|||
}`
|
||||
|
||||
otherDeps := `
|
||||
cc_library { name: "lib_a", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_b", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
||||
cc_library { name: "lib_a"}
|
||||
cc_library { name: "lib_b"}
|
||||
cc_library { name: "lib_default"}
|
||||
`
|
||||
|
||||
runSoongConfigModuleTypeTest(t, Bp2buildTestCase{
|
||||
|
@ -1131,6 +1137,7 @@ cc_library { name: "lib_default", bazel_module: { bp2build_available: false } }
|
|||
Filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": otherDeps,
|
||||
},
|
||||
StubbedBuildDefinitions: []string{"//foo/bar:lib_a", "//foo/bar:lib_b", "//foo/bar:lib_default"},
|
||||
ExpectedBazelTargets: []string{`cc_binary(
|
||||
name = "alphabet_binary",
|
||||
deps = select({
|
||||
|
|
|
@ -22,6 +22,7 @@ specific-but-shared functionality among tests in package
|
|||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
|
@ -37,6 +38,9 @@ var (
|
|||
buildDir string
|
||||
)
|
||||
|
||||
var labelRegex = regexp.MustCompile(`^//([^: ]+):([^ ]+)$`)
|
||||
var simpleModuleNameRegex = regexp.MustCompile(`^[^: /]+$`)
|
||||
|
||||
func checkError(t *testing.T, errs []error, expectedErr error) bool {
|
||||
t.Helper()
|
||||
|
||||
|
@ -87,9 +91,12 @@ type Bp2buildTestCase struct {
|
|||
// in the directory under test. The BUILD file has the given contents. This BUILD file
|
||||
// will also be treated as "BUILD file to keep" by the simulated bp2build environment.
|
||||
AlreadyExistingBuildContents string
|
||||
// StubbedBuildDefinitions, if non-empty, adds stub definitions to an already-present source
|
||||
// BUILD file in the directory under test, for each target name given. These stub definitions
|
||||
// are added to the BUILD file given in AlreadyExistingBuildContents, if it is set.
|
||||
|
||||
// StubbedBuildDefinitions, if non-empty, adds stub definitions to already-present source
|
||||
// BUILD files for each bazel label given. The BUILD files with these stub definitions
|
||||
// are added to the BUILD file given in AlreadyExistingBuildContents.
|
||||
// Labels may be of the form //pkg/to:target_name (which would be defined in pkg/to/BUILD.bazel)
|
||||
// or `target_name` (which would be defined in ./BUILD.bazel).
|
||||
StubbedBuildDefinitions []string
|
||||
|
||||
Filesystem map[string]string
|
||||
|
@ -120,32 +127,51 @@ func RunBp2BuildTestCase(t *testing.T, registerModuleTypes func(ctx android.Regi
|
|||
|
||||
func runBp2BuildTestCaseWithSetup(t *testing.T, extraPreparer android.FixturePreparer, tc Bp2buildTestCase) {
|
||||
t.Helper()
|
||||
if tc.Filesystem == nil {
|
||||
tc.Filesystem = map[string]string{}
|
||||
}
|
||||
checkDir := "."
|
||||
if tc.Dir != "" {
|
||||
checkDir = tc.Dir
|
||||
}
|
||||
keepExistingBuildDirs := tc.KeepBuildFileForDirs
|
||||
buildFilesToParse := []string{}
|
||||
|
||||
if len(tc.StubbedBuildDefinitions) > 0 {
|
||||
for _, buildDef := range tc.StubbedBuildDefinitions {
|
||||
globalLabelMatch := labelRegex.FindStringSubmatch(buildDef)
|
||||
var dir, targetName string
|
||||
if len(globalLabelMatch) > 0 {
|
||||
dir = globalLabelMatch[1]
|
||||
targetName = globalLabelMatch[2]
|
||||
} else {
|
||||
if !simpleModuleNameRegex.MatchString(buildDef) {
|
||||
t.Errorf("Stubbed build definition '%s' must be either a simple module name or of global target syntax (//foo/bar:baz).", buildDef)
|
||||
return
|
||||
}
|
||||
dir = "."
|
||||
targetName = buildDef
|
||||
}
|
||||
buildFilePath := filepath.Join(dir, "BUILD")
|
||||
tc.Filesystem[buildFilePath] +=
|
||||
MakeBazelTarget(
|
||||
"bp2build_test_stub",
|
||||
targetName,
|
||||
AttrNameToString{})
|
||||
keepExistingBuildDirs = append(keepExistingBuildDirs, dir)
|
||||
buildFilesToParse = append(buildFilesToParse, buildFilePath)
|
||||
}
|
||||
}
|
||||
if len(tc.AlreadyExistingBuildContents) > 0 {
|
||||
buildFilePath := filepath.Join(checkDir, "BUILD")
|
||||
tc.Filesystem[buildFilePath] += tc.AlreadyExistingBuildContents
|
||||
keepExistingBuildDirs = append(keepExistingBuildDirs, checkDir)
|
||||
buildFilesToParse = append(buildFilesToParse, buildFilePath)
|
||||
}
|
||||
filesystem := make(map[string][]byte)
|
||||
for f, content := range tc.Filesystem {
|
||||
filesystem[f] = []byte(content)
|
||||
}
|
||||
alreadyExistingBuildContents := tc.AlreadyExistingBuildContents
|
||||
if len(tc.StubbedBuildDefinitions) > 0 {
|
||||
for _, targetName := range tc.StubbedBuildDefinitions {
|
||||
alreadyExistingBuildContents += MakeBazelTarget(
|
||||
"bp2build_test_stub",
|
||||
targetName,
|
||||
AttrNameToString{})
|
||||
}
|
||||
}
|
||||
if len(alreadyExistingBuildContents) > 0 {
|
||||
buildFilePath := filepath.Join(checkDir, "BUILD")
|
||||
filesystem[buildFilePath] = []byte(alreadyExistingBuildContents)
|
||||
keepExistingBuildDirs = append(keepExistingBuildDirs, checkDir)
|
||||
buildFilesToParse = append(buildFilesToParse, buildFilePath)
|
||||
}
|
||||
|
||||
preparers := []android.FixturePreparer{
|
||||
extraPreparer,
|
||||
android.FixtureMergeMockFs(filesystem),
|
||||
|
@ -600,11 +626,10 @@ func registerCustomModuleForBp2buildConversion(ctx *android.TestContext) {
|
|||
ctx.RegisterForBazelConversion()
|
||||
}
|
||||
|
||||
func SimpleModuleDoNotConvertBp2build(typ, name string) string {
|
||||
func simpleModule(typ, name string) string {
|
||||
return fmt.Sprintf(`
|
||||
%s {
|
||||
name: "%s",
|
||||
bazel_module: { bp2build_available: false },
|
||||
}`, typ, name)
|
||||
}
|
||||
|
||||
|
|
|
@ -3391,7 +3391,6 @@ func (i *Import) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||
javaLibraryBazelTargetModuleProperties(),
|
||||
android.CommonAttributes{Name: name + "-neverlink"},
|
||||
neverlinkAttrs)
|
||||
|
||||
}
|
||||
|
||||
var _ android.MixedBuildBuildable = (*Import)(nil)
|
||||
|
|
Loading…
Reference in a new issue