Support data properties in java_test and android_test

Files in the data property will be passed to
LOCAL_COMPATIBILITY_SUPPORT_FILES in Make.

Test: m checkbuild
Change-Id: Ifc074317f957aba8f55daa30abc5b9737d1eceac
This commit is contained in:
Colin Cross 2018-08-10 16:06:24 -07:00
parent 303e21f695
commit d96ca35779
3 changed files with 25 additions and 0 deletions

View file

@ -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, " "))
})
}
}

View file

@ -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)
}

View file

@ -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 {