From 8efd580eb1306486006c2c3a5c1c1005fabfa1d7 Mon Sep 17 00:00:00 2001 From: Nelson Li Date: Tue, 28 Nov 2023 05:35:07 +0000 Subject: [PATCH] Enable Soong's tradefed_binary to support multi-arch The original `tradefed_binary_host` in Soong always used the host OS architecture when writing the `arch` in `test-suite-info.properties`. This change introduces the `Suite_arch` attribute in `tradefed_binary_host`, allowing users to specify the architecture for `test-suite-info.properties`. Bug: 313535357 Test: 1. Add property of `suite_arch` in the Android.bp 2. m cts-tradefed 3. check `test-suite-info.properties` in cts-tradefed.jar Change-Id: Ib95db4e0e8d238c9bb8a2a3fffea606fa6a764ce --- tradefed/suite_harness/tradefed_binary.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tradefed/suite_harness/tradefed_binary.go b/tradefed/suite_harness/tradefed_binary.go index 1ce94bcb9..96fb35418 100644 --- a/tradefed/suite_harness/tradefed_binary.go +++ b/tradefed/suite_harness/tradefed_binary.go @@ -35,6 +35,7 @@ type TradefedBinaryProperties struct { Short_name string Full_name string Version string + Suite_arch string Prepend_platform_version_name bool } @@ -67,6 +68,7 @@ func tradefedBinaryLoadHook(tfb *TradefedBinaryProperties) func(ctx android.Load Name: &genName, Short_name: tfb.Short_name, Full_name: tfb.Full_name, + Suite_arch: tfb.Suite_arch, Version: version, }) @@ -95,6 +97,7 @@ type TradefedBinaryGenProperties struct { Short_name string Full_name string Version string + Suite_arch string } type tradefedBinaryGen struct { @@ -127,13 +130,19 @@ var tradefedBinaryGenRule = pctx.StaticRule("tradefedBinaryGenRule", blueprint.R func (tfg *tradefedBinaryGen) GenerateAndroidBuildActions(ctx android.ModuleContext) { buildNumberFile := ctx.Config().BuildNumberFile(ctx) outputFile := android.PathForModuleOut(ctx, "test-suite-info.properties") + + arch := strings.ReplaceAll(tfg.properties.Suite_arch, " ", "") + if arch == "" { + arch = ctx.Config().DevicePrimaryArchType().String() + } + ctx.Build(pctx, android.BuildParams{ Rule: tradefedBinaryGenRule, Output: outputFile, OrderOnly: android.Paths{buildNumberFile}, Args: map[string]string{ "buildNumberFile": buildNumberFile.String(), - "arch": ctx.Config().DevicePrimaryArchType().String(), + "arch": arch, "name": tfg.properties.Short_name, "fullname": tfg.properties.Full_name, "version": tfg.properties.Version,