Merge "Allow adding extra tradefed options in the Android.bp file"

This commit is contained in:
Treehugger Robot
2022-12-17 03:40:01 +00:00
committed by Gerrit Code Review
10 changed files with 232 additions and 177 deletions

View File

@@ -888,6 +888,10 @@ type TestOptions struct {
// a list of extra test configuration files that should be installed with the module.
Extra_test_configs []string `android:"path,arch_variant"`
// Extra <option> tags to add to the auto generated test xml file. The "key"
// is optional in each of these.
Tradefed_options []tradefed.Option
}
type testProperties struct {
@@ -1166,8 +1170,18 @@ func (j *Test) generateAndroidBuildActionsWithConfig(ctx android.ModuleContext,
j.testProperties.Test_options.Unit_test = proptools.BoolPtr(defaultUnitTest)
}
j.testConfig = tradefed.AutoGenJavaTestConfig(ctx, j.testProperties.Test_config, j.testProperties.Test_config_template,
j.testProperties.Test_suites, configs, j.testProperties.Auto_gen_config, j.testProperties.Test_options.Unit_test)
j.testConfig = tradefed.NewMaybeAutoGenTestConfigBuilder(ctx).
SetTestConfigProp(j.testProperties.Test_config).
SetTestTemplateConfigProp(j.testProperties.Test_config_template).
SetTestSuites(j.testProperties.Test_suites).
SetConfig(configs).
SetOptionsForAutogenerated(j.testProperties.Test_options.Tradefed_options).
SetAutoGenConfig(j.testProperties.Auto_gen_config).
SetUnitTest(j.testProperties.Test_options.Unit_test).
SetDeviceTemplate("${JavaTestConfigTemplate}").
SetHostTemplate("${JavaHostTestConfigTemplate}").
SetHostUnitTestTemplate("${JavaHostUnitTestConfigTemplate}").
Build()
j.data = android.PathsForModuleSrc(ctx, j.testProperties.Data)
@@ -1212,8 +1226,13 @@ func (j *TestHelperLibrary) GenerateAndroidBuildActions(ctx android.ModuleContex
}
func (j *JavaTestImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
j.testConfig = tradefed.AutoGenJavaTestConfig(ctx, j.prebuiltTestProperties.Test_config, nil,
j.prebuiltTestProperties.Test_suites, nil, nil, nil)
j.testConfig = tradefed.NewMaybeAutoGenTestConfigBuilder(ctx).
SetTestConfigProp(j.prebuiltTestProperties.Test_config).
SetTestSuites(j.prebuiltTestProperties.Test_suites).
SetDeviceTemplate("${JavaTestConfigTemplate}").
SetHostTemplate("${JavaHostTestConfigTemplate}").
SetHostUnitTestTemplate("${JavaHostUnitTestConfigTemplate}").
Build()
j.Import.GenerateAndroidBuildActions(ctx)
}

View File

@@ -1945,3 +1945,25 @@ func TestJavaApiLibraryJarGeneration(t *testing.T) {
}
}
}
func TestTradefedOptions(t *testing.T) {
result := PrepareForTestWithJavaBuildComponents.RunTestWithBp(t, `
java_test_host {
name: "foo",
test_options: {
tradefed_options: [
{
name: "exclude-path",
value: "org/apache"
}
]
}
}
`)
args := result.ModuleForTests("foo", "linux_glibc_common").
Output("out/soong/.intermediates/foo/linux_glibc_common/foo.config").Args
expected := proptools.NinjaAndShellEscape("<option name=\"exclude-path\" value=\"org/apache\" />")
if args["extraConfigs"] != expected {
t.Errorf("Expected args[\"extraConfigs\"] to equal %q, was %q", expected, args["extraConfigs"])
}
}

View File

@@ -131,9 +131,14 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
r.forceOSType = ctx.Config().BuildOS
r.forceArchType = ctx.Config().BuildArch
r.testConfig = tradefed.AutoGenRobolectricTestConfig(ctx, r.testProperties.Test_config,
r.testProperties.Test_config_template, r.testProperties.Test_suites,
r.testProperties.Auto_gen_config)
r.testConfig = tradefed.NewMaybeAutoGenTestConfigBuilder(ctx).
SetTestConfigProp(r.testProperties.Test_config).
SetTestTemplateConfigProp(r.testProperties.Test_config_template).
SetTestSuites(r.testProperties.Test_suites).
SetAutoGenConfig(r.testProperties.Auto_gen_config).
SetDeviceTemplate("${RobolectricTestConfigTemplate}").
SetHostTemplate("${RobolectricTestConfigTemplate}").
Build()
r.data = android.PathsForModuleSrc(ctx, r.testProperties.Data)
roboTestConfig := android.PathForModuleGen(ctx, "robolectric").