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
diff --git a/java/androidmk.go b/java/androidmk.go
index 4eae81e..384d7e8 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -114,6 +114,8 @@
}
})
+ androidMkWriteTestData(j.data, &data)
+
return data
}
@@ -255,6 +257,7 @@
fmt.Fprintln(w, "LOCAL_FULL_TEST_CONFIG :=", a.testConfig.String())
}
})
+ androidMkWriteTestData(a.data, &data)
return data
}
@@ -375,3 +378,15 @@
},
}
}
+
+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 0ca7a2b..78d526d 100644
--- a/java/app.go
+++ b/java/app.go
@@ -224,6 +224,7 @@
testProperties testProperties
testConfig android.Path
+ data android.Paths
}
func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
@@ -236,10 +237,12 @@
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 8fe4f35..a015a99 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1357,6 +1357,10 @@
// 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 @@
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 @@
ctx.AddDependency(ctx.Module(), staticLibTag, "junit")
}
android.ExtractSourceDeps(ctx, j.testProperties.Test_config)
+ android.ExtractSourcesDeps(ctx, j.testProperties.Data)
}
func TestFactory() android.Module {