Add test_mainline_modules to the auto-gen test config(AndroidJUnitTest only).
To support parameterized mainline modules in Test Mapping, we plan to add a new parameter called test_mainline_modules in build system to auto-generate the test config based on the parameter. For detailed information: go/test-mapping-mainline-gcl (search for auto-generated pattern) Bug: 155238134 Test: add "test_mainline_modules: [some.apk]" to TetheringTests, and build the modules, confirm the parameterized option is added in the test config. Change-Id: I41ba8749ce46da62db402a8b8a555d4874e1cfc0 Merged-In: I41ba8749ce46da62db402a8b8a555d4874e1cfc0
This commit is contained in:
parent
53754e3592
commit
ba60625021
3 changed files with 23 additions and 6 deletions
|
@ -980,6 +980,7 @@ func (a *AndroidTest) InstallInTestcases() bool {
|
|||
}
|
||||
|
||||
func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
var configs []tradefed.Config
|
||||
if a.appTestProperties.Instrumentation_target_package != nil {
|
||||
a.additionalAaptFlags = append(a.additionalAaptFlags,
|
||||
"--rename-instrumentation-target-package "+*a.appTestProperties.Instrumentation_target_package)
|
||||
|
@ -992,8 +993,12 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
}
|
||||
a.generateAndroidBuildActions(ctx)
|
||||
|
||||
for _, module := range a.testProperties.Test_mainline_modules {
|
||||
configs = append(configs, tradefed.Option{Name: "config-descriptor:metadata", Key: "mainline-param", Value: module})
|
||||
}
|
||||
|
||||
testConfig := tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config,
|
||||
a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites, a.testProperties.Auto_gen_config)
|
||||
a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites, a.testProperties.Auto_gen_config, configs)
|
||||
a.testConfig = a.FixTestConfig(ctx, testConfig)
|
||||
a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data)
|
||||
}
|
||||
|
|
|
@ -2029,6 +2029,10 @@ type testProperties struct {
|
|||
// doesn't exist next to the Android.bp, this attribute doesn't need to be set to true
|
||||
// explicitly.
|
||||
Auto_gen_config *bool
|
||||
|
||||
// Add parameterized mainline modules to auto generated test config. The options will be
|
||||
// handled by TradeFed to do downloading and installing the specified modules on the device.
|
||||
Test_mainline_modules []string
|
||||
}
|
||||
|
||||
type testHelperLibraryProperties struct {
|
||||
|
|
|
@ -219,31 +219,39 @@ func AutoGenRustTestConfig(ctx android.ModuleContext, name string, testConfigPro
|
|||
}
|
||||
|
||||
var autogenInstrumentationTest = pctx.StaticRule("autogenInstrumentationTest", blueprint.RuleParams{
|
||||
Command: "${AutoGenTestConfigScript} $out $in ${EmptyTestConfig} $template",
|
||||
Command: "${AutoGenTestConfigScript} $out $in ${EmptyTestConfig} $template ${extraConfigs}",
|
||||
CommandDeps: []string{
|
||||
"${AutoGenTestConfigScript}",
|
||||
"${EmptyTestConfig}",
|
||||
"$template",
|
||||
},
|
||||
}, "name", "template")
|
||||
}, "name", "template", "extraConfigs")
|
||||
|
||||
func AutoGenInstrumentationTestConfig(ctx android.ModuleContext, testConfigProp *string,
|
||||
testConfigTemplateProp *string, manifest android.Path, testSuites []string, autoGenConfig *bool) android.Path {
|
||||
testConfigTemplateProp *string, manifest android.Path, testSuites []string, autoGenConfig *bool, configs []Config) android.Path {
|
||||
path, autogenPath := testConfigPath(ctx, testConfigProp, testSuites, autoGenConfig, testConfigTemplateProp)
|
||||
var configStrings []string
|
||||
if autogenPath != nil {
|
||||
template := "${InstrumentationTestConfigTemplate}"
|
||||
moduleTemplate := getTestConfigTemplate(ctx, testConfigTemplateProp)
|
||||
if moduleTemplate.Valid() {
|
||||
template = moduleTemplate.String()
|
||||
}
|
||||
for _, config := range configs {
|
||||
configStrings = append(configStrings, config.Config())
|
||||
}
|
||||
extraConfigs := strings.Join(configStrings, fmt.Sprintf("\\n%s", test_xml_indent))
|
||||
extraConfigs = fmt.Sprintf("--extra-configs '%s'", extraConfigs)
|
||||
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: autogenInstrumentationTest,
|
||||
Description: "test config",
|
||||
Input: manifest,
|
||||
Output: autogenPath,
|
||||
Args: map[string]string{
|
||||
"name": ctx.ModuleName(),
|
||||
"template": template,
|
||||
"name": ctx.ModuleName(),
|
||||
"template": template,
|
||||
"extraConfigs": extraConfigs,
|
||||
},
|
||||
})
|
||||
return autogenPath
|
||||
|
|
Loading…
Reference in a new issue