rewrite android_app to android_test in mk2bp
1. When a converted android_app module has the `test_suites` property, rewrite the module type to an android_test one; 2. Refactor the existing codes for rewriting cc_binary to cc_test. Bug: 217650002 Test: add unit and end-to-end tests Test: TreeHugger Change-Id: I90d744a2ae93561f63ed8606f37ea4aa26fa6137
This commit is contained in:
@@ -1688,6 +1688,21 @@ android_app {
|
||||
name: "foo",
|
||||
privileged: true
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
desc: "convert android_app to android_test when having test_suites",
|
||||
in: `
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := foo
|
||||
LOCAL_COMPATIBILITY_SUITE := bar
|
||||
include $(BUILD_PACKAGE)
|
||||
`,
|
||||
expected: `
|
||||
android_test {
|
||||
name: "foo",
|
||||
test_suites: ["bar"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
@@ -449,6 +449,7 @@ func rewriteTestModuleTypes(f *Fixer) error {
|
||||
}
|
||||
|
||||
hasInstrumentationFor := hasNonEmptyLiteralStringProperty(mod, "instrumentation_for")
|
||||
hasTestSuites := hasNonEmptyLiteralListProperty(mod, "test_suites")
|
||||
tags, _ := getLiteralListPropertyValue(mod, "tags")
|
||||
|
||||
var hasTestsTag bool
|
||||
@@ -458,7 +459,7 @@ func rewriteTestModuleTypes(f *Fixer) error {
|
||||
}
|
||||
}
|
||||
|
||||
isTest := hasInstrumentationFor || hasTestsTag
|
||||
isTest := hasInstrumentationFor || hasTestsTag || hasTestSuites
|
||||
|
||||
if isTest {
|
||||
switch mod.Type {
|
||||
@@ -470,13 +471,7 @@ func rewriteTestModuleTypes(f *Fixer) error {
|
||||
mod.Type = "java_test"
|
||||
case "java_library_host":
|
||||
mod.Type = "java_test_host"
|
||||
}
|
||||
}
|
||||
|
||||
// when a cc_binary module has a nonempty test_suites field, modify the type to cc_test
|
||||
if mod.Type == "cc_binary" {
|
||||
hasTestSuites := hasNonEmptyLiteralListProperty(mod, "test_suites")
|
||||
if hasTestSuites {
|
||||
case "cc_binary":
|
||||
mod.Type = "cc_test"
|
||||
}
|
||||
}
|
||||
|
@@ -1436,6 +1436,38 @@ func TestRewriteTestModuleTypes(t *testing.T) {
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "android_app with android_test",
|
||||
in: `
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["srcs"],
|
||||
test_suites: ["test_suite1"],
|
||||
}
|
||||
`,
|
||||
out: `
|
||||
android_test {
|
||||
name: "foo",
|
||||
srcs: ["srcs"],
|
||||
test_suites: ["test_suite1"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "android_app without test_suites",
|
||||
in: `
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["srcs"],
|
||||
}
|
||||
`,
|
||||
out: `
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["srcs"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user