summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-10-23 22:59:14 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-10-23 22:59:14 +0000
commitc92be6e91acabd83724cd6312fb9733fa8a0e7e4 (patch)
tree473d3e077ddcad4c320a57186eb657da69756da9
parent23e817f07f332b458bc9b4f2e014bf3ce4b96384 (diff)
parent18f03f1c071ade4ecf0b9f03464d87ed22000248 (diff)
Merge "Add device_first_prefer32_data to java modules" into main
-rw-r--r--android/path_properties.go19
-rw-r--r--java/app.go1
-rw-r--r--java/java.go7
-rw-r--r--java/robolectric.go1
4 files changed, 27 insertions, 1 deletions
diff --git a/android/path_properties.go b/android/path_properties.go
index 8ada1330c..b4fabeb94 100644
--- a/android/path_properties.go
+++ b/android/path_properties.go
@@ -51,11 +51,13 @@ func addPathDepsForProps(ctx BottomUpMutatorContext, props []interface{}) {
// tagged with `android:"path"` or one of the variant-specifying tags.
var pathProperties []string
var pathDeviceFirstProperties []string
+ var pathDeviceFirstPrefer32Properties []string
var pathDeviceCommonProperties []string
var pathCommonOsProperties []string
for _, ps := range props {
pathProperties = append(pathProperties, taggedPropertiesForPropertyStruct(ctx, ps, "path")...)
pathDeviceFirstProperties = append(pathDeviceFirstProperties, taggedPropertiesForPropertyStruct(ctx, ps, "path_device_first")...)
+ pathDeviceFirstPrefer32Properties = append(pathDeviceFirstPrefer32Properties, taggedPropertiesForPropertyStruct(ctx, ps, "path_device_first_prefer32")...)
pathDeviceCommonProperties = append(pathDeviceCommonProperties, taggedPropertiesForPropertyStruct(ctx, ps, "path_device_common")...)
pathCommonOsProperties = append(pathCommonOsProperties, taggedPropertiesForPropertyStruct(ctx, ps, "path_common_os")...)
}
@@ -63,6 +65,7 @@ func addPathDepsForProps(ctx BottomUpMutatorContext, props []interface{}) {
// Remove duplicates to avoid multiple dependencies.
pathProperties = FirstUniqueStrings(pathProperties)
pathDeviceFirstProperties = FirstUniqueStrings(pathDeviceFirstProperties)
+ pathDeviceFirstPrefer32Properties = FirstUniqueStrings(pathDeviceFirstPrefer32Properties)
pathDeviceCommonProperties = FirstUniqueStrings(pathDeviceCommonProperties)
pathCommonOsProperties = FirstUniqueStrings(pathCommonOsProperties)
@@ -80,13 +83,27 @@ func addPathDepsForProps(ctx BottomUpMutatorContext, props []interface{}) {
ctx.AddVariationDependencies(ctx.Config().AndroidFirstDeviceTarget.Variations(), sourceOrOutputDepTag(m, t), m)
}
}
+ // properties tagged path_device_first_prefer32 get the first 32 bit target if one is available,
+ // otherwise they use the first 64 bit target
+ if len(pathDeviceFirstPrefer32Properties) > 0 {
+ firstPrefer32Target := FirstTarget(ctx.Config().Targets[Android], "lib32", "lib64")
+ if len(firstPrefer32Target) == 0 {
+ ctx.ModuleErrorf("Could not find a first_prefer32 target")
+ } else {
+ for _, s := range pathDeviceFirstPrefer32Properties {
+ if m, t := SrcIsModuleWithTag(s); m != "" {
+ ctx.AddVariationDependencies(firstPrefer32Target[0].Variations(), sourceOrOutputDepTag(m, t), m)
+ }
+ }
+ }
+ }
// properties tagged "path_device_common" get the device common variant
for _, s := range pathDeviceCommonProperties {
if m, t := SrcIsModuleWithTag(s); m != "" {
ctx.AddVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(), sourceOrOutputDepTag(m, t), m)
}
}
- // properties tagged "path_device_common" get the device common variant
+ // properties tagged "path_common_os" get the CommonOs variant
for _, s := range pathCommonOsProperties {
if m, t := SrcIsModuleWithTag(s); m != "" {
ctx.AddVariationDependencies([]blueprint.Variation{
diff --git a/java/app.go b/java/app.go
index 56fcfbba8..addbc28b0 100644
--- a/java/app.go
+++ b/java/app.go
@@ -1442,6 +1442,7 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data)
a.data = append(a.data, android.PathsForModuleSrc(ctx, a.testProperties.Device_common_data)...)
a.data = append(a.data, android.PathsForModuleSrc(ctx, a.testProperties.Device_first_data)...)
+ a.data = append(a.data, android.PathsForModuleSrc(ctx, a.testProperties.Device_first_prefer32_data)...)
android.SetProvider(ctx, testing.TestModuleProviderKey, testing.TestModuleProviderData{})
android.SetProvider(ctx, tradefed.BaseTestProviderKey, tradefed.BaseTestProviderData{
InstalledFiles: a.data,
diff --git a/java/java.go b/java/java.go
index 5bb36368b..679714858 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1301,6 +1301,12 @@ type testProperties struct {
// host test.
Device_first_data []string `android:"path_device_first"`
+ // same as data, but adds dependencies using the device's os variation and the device's first
+ // 32-bit architecture's variation. If a 32-bit arch doesn't exist for this device, it will use
+ // a 64 bit arch instead. Can be used to add a module built for device to the data of a
+ // host test.
+ Device_first_prefer32_data []string `android:"path_device_first_prefer32"`
+
// Flag to indicate whether or not to create test config automatically. If AndroidTest.xml
// doesn't exist next to the Android.bp, this attribute doesn't need to be set to true
// explicitly.
@@ -1593,6 +1599,7 @@ func (j *Test) generateAndroidBuildActionsWithConfig(ctx android.ModuleContext,
j.data = android.PathsForModuleSrc(ctx, j.testProperties.Data)
j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_common_data)...)
j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_first_data)...)
+ j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_first_prefer32_data)...)
j.extraTestConfigs = android.PathsForModuleSrc(ctx, j.testProperties.Test_options.Extra_test_configs)
diff --git a/java/robolectric.go b/java/robolectric.go
index fb820efed..e6f80ac37 100644
--- a/java/robolectric.go
+++ b/java/robolectric.go
@@ -151,6 +151,7 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
r.data = android.PathsForModuleSrc(ctx, r.testProperties.Data)
r.data = append(r.data, android.PathsForModuleSrc(ctx, r.testProperties.Device_common_data)...)
r.data = append(r.data, android.PathsForModuleSrc(ctx, r.testProperties.Device_first_data)...)
+ r.data = append(r.data, android.PathsForModuleSrc(ctx, r.testProperties.Device_first_prefer32_data)...)
var ok bool
var instrumentedApp *AndroidApp