diff --git a/java/androidmk.go b/java/androidmk.go index 4eae81e4e..384d7e8e8 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -114,6 +114,8 @@ func (j *Test) AndroidMk() android.AndroidMkData { } }) + androidMkWriteTestData(j.data, &data) + return data } @@ -255,6 +257,7 @@ func (a *AndroidTest) AndroidMk() android.AndroidMkData { fmt.Fprintln(w, "LOCAL_FULL_TEST_CONFIG :=", a.testConfig.String()) } }) + androidMkWriteTestData(a.data, &data) return data } @@ -375,3 +378,15 @@ func (ddoc *Droiddoc) AndroidMk() android.AndroidMkData { }, } } + +func androidMkWriteTestData(data android.Paths, ret *android.AndroidMkData) { + var testFiles []string + for _, d := range data { + testFiles = append(testFiles, d.String()+":"+d.Rel()) + } + if len(testFiles) > 0 { + ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) { + fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUPPORT_FILES := "+strings.Join(testFiles, " ")) + }) + } +} diff --git a/java/app.go b/java/app.go index 0ca7a2b61..78d526db4 100644 --- a/java/app.go +++ b/java/app.go @@ -224,6 +224,7 @@ type AndroidTest struct { testProperties testProperties testConfig android.Path + data android.Paths } func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { @@ -236,10 +237,12 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { a.generateAndroidBuildActions(ctx) a.testConfig = tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, a.manifestPath) + a.data = ctx.ExpandSources(a.testProperties.Data, nil) } func (a *AndroidTest) DepsMutator(ctx android.BottomUpMutatorContext) { android.ExtractSourceDeps(ctx, a.testProperties.Test_config) + android.ExtractSourcesDeps(ctx, a.testProperties.Data) a.AndroidApp.DepsMutator(ctx) } diff --git a/java/java.go b/java/java.go index 8fe4f3565..a015a9953 100644 --- a/java/java.go +++ b/java/java.go @@ -1357,6 +1357,10 @@ type testProperties struct { // the name of the test configuration (for example "AndroidTest.xml") that should be // installed with the module. Test_config *string `android:"arch_variant"` + + // list of files or filegroup modules that provide data that should be installed alongside + // the test + Data []string } type Test struct { @@ -1365,10 +1369,12 @@ type Test struct { testProperties testProperties testConfig android.Path + data android.Paths } func (j *Test) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.testConfig = tradefed.AutoGenJavaTestConfig(ctx, j.testProperties.Test_config) + j.data = ctx.ExpandSources(j.testProperties.Data, nil) j.Library.GenerateAndroidBuildActions(ctx) } @@ -1379,6 +1385,7 @@ func (j *Test) DepsMutator(ctx android.BottomUpMutatorContext) { ctx.AddDependency(ctx.Module(), staticLibTag, "junit") } android.ExtractSourceDeps(ctx, j.testProperties.Test_config) + android.ExtractSourcesDeps(ctx, j.testProperties.Data) } func TestFactory() android.Module {