summaryrefslogtreecommitdiff
path: root/sh/sh_binary.go
diff options
context:
space:
mode:
author Makoto Onuki <omakoto@google.com> 2023-08-24 22:17:56 +0000
committer Android Build Cherrypicker Worker <android-build-cherrypicker-worker@google.com> 2023-08-24 22:17:56 +0000
commit1725b20d144e7f7054e63f88e297c5461e6dbe9e (patch)
tree0d41eaa516b1c12edf69302d21f57ec51bdadfe3 /sh/sh_binary.go
parent4e6c42d417c41f91f60333dad0974d7bfb7f5ae2 (diff)
Support java_data in sh_test_host
Bug: 297225342 Test: with a custom test rule Test: cd sh && go test ./... (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:de5d265a798ce0e12ad0a2d0a6675942df5cd10b) Merged-In: Ia5a60fa6d917f2c2fde56df543625024ec11877a Change-Id: Ia5a60fa6d917f2c2fde56df543625024ec11877a
Diffstat (limited to 'sh/sh_binary.go')
-rw-r--r--sh/sh_binary.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/sh/sh_binary.go b/sh/sh_binary.go
index 545990475..00794cdbe 100644
--- a/sh/sh_binary.go
+++ b/sh/sh_binary.go
@@ -143,6 +143,9 @@ type TestProperties struct {
// Only available for host sh_test modules.
Data_device_libs []string `android:"path,arch_variant"`
+ // list of java modules that provide data that should be installed alongside the test.
+ Java_data []string
+
// Install the test into a folder named for the module in all test suites.
Per_testcase_directory *bool
@@ -307,6 +310,7 @@ var (
shTestDataLibsTag = dependencyTag{name: "dataLibs"}
shTestDataDeviceBinsTag = dependencyTag{name: "dataDeviceBins"}
shTestDataDeviceLibsTag = dependencyTag{name: "dataDeviceLibs"}
+ shTestJavaDataTag = dependencyTag{name: "javaData"}
)
var sharedLibVariations = []blueprint.Variation{{Mutator: "link", Variation: "shared"}}
@@ -322,6 +326,10 @@ func (s *ShTest) DepsMutator(ctx android.BottomUpMutatorContext) {
ctx.AddFarVariationDependencies(deviceVariations, shTestDataDeviceBinsTag, s.testProperties.Data_device_bins...)
ctx.AddFarVariationDependencies(append(deviceVariations, sharedLibVariations...),
shTestDataDeviceLibsTag, s.testProperties.Data_device_libs...)
+
+ javaDataVariation := []blueprint.Variation{{"arch", android.Common.String()}}
+ ctx.AddVariationDependencies(javaDataVariation, shTestJavaDataTag, s.testProperties.Java_data...)
+
} else if ctx.Target().Os.Class != android.Host {
if len(s.testProperties.Data_device_bins) > 0 {
ctx.PropertyErrorf("data_device_bins", "only available for host modules")
@@ -329,6 +337,9 @@ func (s *ShTest) DepsMutator(ctx android.BottomUpMutatorContext) {
if len(s.testProperties.Data_device_libs) > 0 {
ctx.PropertyErrorf("data_device_libs", "only available for host modules")
}
+ if len(s.testProperties.Java_data) > 0 {
+ ctx.PropertyErrorf("Java_data", "only available for host modules")
+ }
}
}
@@ -361,7 +372,13 @@ func (s *ShTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
}
s.installedFile = ctx.InstallExecutable(s.installDir, s.outputFilePath.Base(), s.outputFilePath)
- s.data = android.PathsForModuleSrc(ctx, s.testProperties.Data)
+ expandedData := android.PathsForModuleSrc(ctx, s.testProperties.Data)
+
+ // Emulate the data property for java_data dependencies.
+ for _, javaData := range ctx.GetDirectDepsWithTag(shTestJavaDataTag) {
+ expandedData = append(expandedData, android.OutputFilesForModule(ctx, javaData, "")...)
+ }
+ s.data = expandedData
var configs []tradefed.Config
if Bool(s.testProperties.Require_root) {