diff options
| -rw-r--r-- | java/app.go | 3 | ||||
| -rw-r--r-- | java/app_test.go | 70 |
2 files changed, 73 insertions, 0 deletions
diff --git a/java/app.go b/java/app.go index 19dc8d5d1..4c52869ed 100644 --- a/java/app.go +++ b/java/app.go @@ -1410,6 +1410,9 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { } a.generateAndroidBuildActions(ctx) + for _, c := range a.testProperties.Test_options.Tradefed_options { + configs = append(configs, c) + } for _, module := range a.testProperties.Test_mainline_modules { configs = append(configs, tradefed.Option{Name: "config-descriptor:metadata", Key: "mainline-param", Value: module}) } diff --git a/java/app_test.go b/java/app_test.go index e878ccf6d..4b006bd69 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -18,6 +18,7 @@ import ( "fmt" "path/filepath" "reflect" + "regexp" "sort" "strings" "testing" @@ -4547,6 +4548,75 @@ func TestTestOnlyApp(t *testing.T) { assertTestOnlyAndTopLevel(t, ctx, expectedTestOnly, expectedTopLevel) } +func TestTestConfigTemplate(t *testing.T) { + t.Parallel() + ctx := android.GroupFixturePreparers( + prepareForJavaTest, + ).RunTestWithBp(t, ` + android_test { + name: "android-test", + test_config_template: "AndroidTestTemplate.xml", + test_options: { + tradefed_options: [ + { + name: "name1", + key: "key1", + value: "value1", + }, + { + name: "name2", + key: "key2", + value: "value2", + }, + ], + test_runner_options: [ + { + name: "name3", + key: "key3", + value: "value3", + }, + { + name: "name4", + key: "key4", + value: "value4", + }, + ], + }, + } + `) + type option struct { + name string + key string + value string + } + re := regexp.MustCompile(`<option name="(.*)" key="(.*)" value="(.*)" />`) + parse_options := func(optionsString string) []option { + lines := strings.Split(optionsString, `\n`) + var ret []option + for _, l := range lines { + sm := re.FindStringSubmatch(l) + if sm == nil { + continue + } + ret = append(ret, option{sm[1], sm[2], sm[3]}) + } + return ret + } + rule := ctx.ModuleForTests("android-test", "android_common").Rule("autogenInstrumentationTest") + android.AssertSameArray(t, "extraConfigs mismatch", + []option{ + {"name1", "key1", "value1"}, + {"name2", "key2", "value2"}, + }, + parse_options(rule.Args["extraConfigs"])) + android.AssertSameArray(t, "extraTestRunnerConfigs mismatch", + []option{ + {"name3", "key3", "value3"}, + {"name4", "key4", "value4"}, + }, + parse_options(rule.Args["extraTestRunnerConfigs"])) +} + func TestAppStem(t *testing.T) { ctx := testApp(t, ` android_app { |