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",
|
name: "foo",
|
||||||
privileged: true
|
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")
|
hasInstrumentationFor := hasNonEmptyLiteralStringProperty(mod, "instrumentation_for")
|
||||||
|
hasTestSuites := hasNonEmptyLiteralListProperty(mod, "test_suites")
|
||||||
tags, _ := getLiteralListPropertyValue(mod, "tags")
|
tags, _ := getLiteralListPropertyValue(mod, "tags")
|
||||||
|
|
||||||
var hasTestsTag bool
|
var hasTestsTag bool
|
||||||
@@ -458,7 +459,7 @@ func rewriteTestModuleTypes(f *Fixer) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isTest := hasInstrumentationFor || hasTestsTag
|
isTest := hasInstrumentationFor || hasTestsTag || hasTestSuites
|
||||||
|
|
||||||
if isTest {
|
if isTest {
|
||||||
switch mod.Type {
|
switch mod.Type {
|
||||||
@@ -470,13 +471,7 @@ func rewriteTestModuleTypes(f *Fixer) error {
|
|||||||
mod.Type = "java_test"
|
mod.Type = "java_test"
|
||||||
case "java_library_host":
|
case "java_library_host":
|
||||||
mod.Type = "java_test_host"
|
mod.Type = "java_test_host"
|
||||||
}
|
case "cc_binary":
|
||||||
}
|
|
||||||
|
|
||||||
// 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 {
|
|
||||||
mod.Type = "cc_test"
|
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 {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
|
Reference in New Issue
Block a user