diff options
author | 2023-08-24 22:17:56 +0000 | |
---|---|---|
committer | 2023-08-24 22:17:56 +0000 | |
commit | 1725b20d144e7f7054e63f88e297c5461e6dbe9e (patch) | |
tree | 0d41eaa516b1c12edf69302d21f57ec51bdadfe3 /sh/sh_binary.go | |
parent | 4e6c42d417c41f91f60333dad0974d7bfb7f5ae2 (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.go | 19 |
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) { |