Merge "Add python template for mobly tests."

This commit is contained in:
Ziwei Zhang
2023-03-20 02:16:04 +00:00
committed by Gerrit Code Review
2 changed files with 54 additions and 9 deletions

View File

@@ -15,6 +15,8 @@
package python
import (
"fmt"
"github.com/google/blueprint/proptools"
"android/soong/android"
@@ -63,7 +65,22 @@ type TestProperties struct {
Java_data []string
// Test options.
Test_options android.CommonTestOptions
Test_options TestOptions
}
type TestOptions struct {
android.CommonTestOptions
// Runner for the test. Supports "tradefed" and "mobly" (for multi-device tests). Default is "tradefed".
Runner *string
// Metadata to describe the test configuration.
Metadata []Metadata
}
type Metadata struct {
Name string
Value string
}
type PythonTestModule struct {
@@ -94,14 +111,41 @@ func (p *PythonTestModule) GenerateAndroidBuildActions(ctx android.ModuleContext
p.PythonLibraryModule.GenerateAndroidBuildActions(ctx)
p.buildBinary(ctx)
p.testConfig = tradefed.AutoGenTestConfig(ctx, tradefed.AutoGenTestConfigOptions{
TestConfigProp: p.testProperties.Test_config,
TestConfigTemplateProp: p.testProperties.Test_config_template,
TestSuites: p.binaryProperties.Test_suites,
AutoGenConfig: p.binaryProperties.Auto_gen_config,
DeviceTemplate: "${PythonBinaryHostTestConfigTemplate}",
HostTemplate: "${PythonBinaryHostTestConfigTemplate}",
})
var configs []tradefed.Option
for _, metadata := range p.testProperties.Test_options.Metadata {
configs = append(configs, tradefed.Option{Name: "config-descriptor:metadata", Key: metadata.Name, Value: metadata.Value})
}
runner := proptools.StringDefault(p.testProperties.Test_options.Runner, "tradefed")
if runner == "tradefed" {
p.testConfig = tradefed.AutoGenTestConfig(ctx, tradefed.AutoGenTestConfigOptions{
TestConfigProp: p.testProperties.Test_config,
TestConfigTemplateProp: p.testProperties.Test_config_template,
TestSuites: p.binaryProperties.Test_suites,
OptionsForAutogenerated: configs,
AutoGenConfig: p.binaryProperties.Auto_gen_config,
DeviceTemplate: "${PythonBinaryHostTestConfigTemplate}",
HostTemplate: "${PythonBinaryHostTestConfigTemplate}",
})
} else if runner == "mobly" {
if p.testProperties.Test_config != nil || p.testProperties.Test_config_template != nil || p.binaryProperties.Auto_gen_config != nil {
panic(fmt.Errorf("cannot set test_config, test_config_template or auto_gen_config for mobly test"))
}
for _, testSuite := range p.binaryProperties.Test_suites {
if testSuite == "cts" {
configs = append(configs, tradefed.Option{Name: "test-suite-tag", Value: "cts"})
break
}
}
p.testConfig = tradefed.AutoGenTestConfig(ctx, tradefed.AutoGenTestConfigOptions{
OptionsForAutogenerated: configs,
DeviceTemplate: "${PythonBinaryHostMoblyTestConfigTemplate}",
HostTemplate: "${PythonBinaryHostMoblyTestConfigTemplate}",
})
} else {
panic(fmt.Errorf("unknown python test runner '%s', should be 'tradefed' or 'mobly'", runner))
}
p.installedDest = ctx.InstallFile(installDir(ctx, "nativetest", "nativetest64", ctx.ModuleName()), p.installSource.Base(), p.installSource)