Add do not convert for sdk_version unset

When sdk_version is unset, the build with fail with Bazel because
private APIs are do not build with Bazel at this time.

This instead prevents migrating the relevant target to Bazel in bp2build

Test: go tests
Change-Id: I31dabcf143de7933706d1b734ef21467a01b65e9
This commit is contained in:
Liz Kammer
2023-08-07 13:38:18 -04:00
parent 8bbe26cad7
commit 02914408de
7 changed files with 315 additions and 209 deletions

View File

@@ -44,9 +44,9 @@ func TestMinimalAndroidApp(t *testing.T) {
},
Blueprint: `
android_app {
name: "TestApp",
srcs: ["app.java"],
sdk_version: "current",
name: "TestApp",
srcs: ["app.java"],
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
@@ -75,17 +75,17 @@ func TestAndroidAppAllSupportedFields(t *testing.T) {
},
Blueprint: simpleModuleDoNotConvertBp2build("android_app", "static_lib_dep") + `
android_app {
name: "TestApp",
srcs: ["app.java"],
sdk_version: "current",
package_name: "com.google",
resource_dirs: ["resa", "resb"],
manifest: "manifest/AndroidManifest.xml",
static_libs: ["static_lib_dep"],
java_version: "7",
certificate: "foocert",
required: ["static_lib_dep"],
asset_dirs: ["assets_"],
name: "TestApp",
srcs: ["app.java"],
sdk_version: "current",
package_name: "com.google",
resource_dirs: ["resa", "resb"],
manifest: "manifest/AndroidManifest.xml",
static_libs: ["static_lib_dep"],
java_version: "7",
certificate: "foocert",
required: ["static_lib_dep"],
asset_dirs: ["assets_"],
}
`,
ExpectedBazelTargets: []string{
@@ -120,16 +120,16 @@ func TestAndroidAppArchVariantSrcs(t *testing.T) {
},
Blueprint: `
android_app {
name: "TestApp",
sdk_version: "current",
arch: {
arm: {
srcs: ["arm.java"],
},
x86: {
srcs: ["x86.java"],
}
name: "TestApp",
sdk_version: "current",
arch: {
arm: {
srcs: ["arm.java"],
},
x86: {
srcs: ["x86.java"],
}
}
}
`,
ExpectedBazelTargets: []string{
@@ -154,8 +154,9 @@ func TestAndroidAppCertIsModule(t *testing.T) {
Filesystem: map[string]string{},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
android_app {
name: "TestApp",
certificate: ":foocert",
name: "TestApp",
certificate: ":foocert",
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
@@ -163,6 +164,7 @@ android_app {
"certificate": `":foocert"`,
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -177,8 +179,9 @@ func TestAndroidAppCertIsSrcFile(t *testing.T) {
},
Blueprint: `
android_app {
name: "TestApp",
certificate: "foocert",
name: "TestApp",
certificate: "foocert",
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
@@ -186,6 +189,7 @@ android_app {
"certificate": `"foocert"`,
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -200,8 +204,9 @@ func TestAndroidAppCertIsNotSrcOrModule(t *testing.T) {
},
Blueprint: `
android_app {
name: "TestApp",
certificate: "foocert",
name: "TestApp",
certificate: "foocert",
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
@@ -209,6 +214,7 @@ android_app {
"certificate_name": `"foocert"`,
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -219,22 +225,20 @@ func TestAndroidAppLibs(t *testing.T) {
ModuleTypeUnderTest: "android_app",
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
Filesystem: map[string]string{},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") +
simpleModuleDoNotConvertBp2build("java_library", "barLib") + `
android_app {
name: "foo",
libs: ["barLib"]
}
java_library{
name: "barLib",
name: "foo",
libs: ["barLib"],
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
MakeBazelTarget("java_library", "barLib", AttrNameToString{}),
MakeNeverlinkDuplicateTarget("java_library", "barLib"),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"deps": `[":barLib-neverlink"]`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -247,21 +251,18 @@ func TestAndroidAppKotlinSrcs(t *testing.T) {
Filesystem: map[string]string{
"res/res.png": "",
},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") +
simpleModuleDoNotConvertBp2build("java_library", "barLib") + `
android_app {
name: "foo",
srcs: ["a.java", "b.kt"],
certificate: ":foocert",
manifest: "fooManifest.xml",
libs: ["barLib"]
}
java_library{
name: "barLib",
name: "foo",
srcs: ["a.java", "b.kt"],
certificate: ":foocert",
manifest: "fooManifest.xml",
libs: ["barLib"],
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
MakeBazelTarget("java_library", "barLib", AttrNameToString{}),
MakeNeverlinkDuplicateTarget("java_library", "barLib"),
MakeBazelTarget("android_library", "foo_kt", AttrNameToString{
"srcs": `[
"a.java",
@@ -270,11 +271,13 @@ java_library{
"manifest": `"fooManifest.xml"`,
"resource_files": `["res/res.png"]`,
"deps": `[":barLib-neverlink"]`,
"sdk_version": `"current"`, // use as default
}),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
"deps": `[":foo_kt"]`,
"certificate": `":foocert"`,
"manifest": `"fooManifest.xml"`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -289,31 +292,33 @@ func TestAndroidAppCommonSrcs(t *testing.T) {
},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
android_app {
name: "foo",
srcs: ["a.java"],
common_srcs: ["b.kt"],
certificate: "foocert",
manifest: "fooManifest.xml",
libs: ["barLib"],
name: "foo",
srcs: ["a.java"],
common_srcs: ["b.kt"],
certificate: "foocert",
manifest: "fooManifest.xml",
libs: ["barLib"],
sdk_version: "current",
}
java_library{
name: "barLib",
name: "barLib",
bazel_module: { bp2build_available: false },
}
`,
ExpectedBazelTargets: []string{
MakeBazelTarget("java_library", "barLib", AttrNameToString{}),
MakeNeverlinkDuplicateTarget("java_library", "barLib"),
MakeBazelTarget("android_library", "foo_kt", AttrNameToString{
"srcs": `["a.java"]`,
"common_srcs": `["b.kt"]`,
"manifest": `"fooManifest.xml"`,
"resource_files": `["res/res.png"]`,
"deps": `[":barLib-neverlink"]`,
"sdk_version": `"current"`, // use as default
}),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
"deps": `[":foo_kt"]`,
"certificate_name": `"foocert"`,
"manifest": `"fooManifest.xml"`,
"sdk_version": `"current"`, // use as default
}),
}})
}
@@ -328,11 +333,12 @@ func TestAndroidAppKotlinCflags(t *testing.T) {
},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
android_app {
name: "foo",
srcs: ["a.java", "b.kt"],
certificate: ":foocert",
manifest: "fooManifest.xml",
kotlincflags: ["-flag1", "-flag2"],
name: "foo",
srcs: ["a.java", "b.kt"],
certificate: ":foocert",
manifest: "fooManifest.xml",
kotlincflags: ["-flag1", "-flag2"],
sdk_version: "current",
}
`,
ExpectedBazelTargets: []string{
@@ -347,11 +353,13 @@ android_app {
"-flag1",
"-flag2",
]`,
"sdk_version": `"current"`, // use as default
}),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
"deps": `[":foo_kt"]`,
"certificate": `":foocert"`,
"manifest": `"fooManifest.xml"`,
"sdk_version": `"current"`,
}),
}})
}
@@ -364,11 +372,11 @@ func TestAndroidAppManifestSdkVersionsProvided(t *testing.T) {
Filesystem: map[string]string{},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
android_app {
name: "foo",
sdk_version: "current",
min_sdk_version: "24",
max_sdk_version: "30",
target_sdk_version: "29",
name: "foo",
sdk_version: "current",
min_sdk_version: "24",
max_sdk_version: "30",
target_sdk_version: "29",
}
`,
ExpectedBazelTargets: []string{
@@ -393,8 +401,8 @@ func TestAndroidAppMinAndTargetSdkDefaultToSdkVersion(t *testing.T) {
Filesystem: map[string]string{},
Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
android_app {
name: "foo",
sdk_version: "30",
name: "foo",
sdk_version: "30",
}
`,
ExpectedBazelTargets: []string{