Merge "Support require_root in auto-gen test configs"
This commit is contained in:
29
cc/test.go
29
cc/test.go
@@ -64,6 +64,10 @@ type TestBinaryProperties struct {
|
||||
|
||||
// Test options.
|
||||
Test_options TestOptions
|
||||
|
||||
// Add RootTargetPreparer to auto generated test config. This guarantees the test to run
|
||||
// with root permission.
|
||||
Require_root *bool
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -273,18 +277,19 @@ func (test *testBinary) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
|
||||
func (test *testBinary) install(ctx ModuleContext, file android.Path) {
|
||||
test.data = android.PathsForModuleSrc(ctx, test.Properties.Data)
|
||||
optionsMap := map[string]string{}
|
||||
if Bool(test.testDecorator.Properties.Isolated) {
|
||||
optionsMap["not-shardable"] = "true"
|
||||
var configs []tradefed.Config
|
||||
if Bool(test.Properties.Require_root) {
|
||||
configs = append(configs, tradefed.Preparer{"com.android.tradefed.targetprep.RootTargetPreparer"})
|
||||
}
|
||||
if Bool(test.testDecorator.Properties.Isolated) {
|
||||
configs = append(configs, tradefed.Option{"not-shardable", "true"})
|
||||
}
|
||||
|
||||
if test.Properties.Test_options.Run_test_as != nil {
|
||||
optionsMap["run-test-as"] = String(test.Properties.Test_options.Run_test_as)
|
||||
configs = append(configs, tradefed.Option{"run-test-as", String(test.Properties.Test_options.Run_test_as)})
|
||||
}
|
||||
|
||||
test.testConfig = tradefed.AutoGenNativeTestConfig(ctx, test.Properties.Test_config,
|
||||
test.Properties.Test_config_template,
|
||||
test.Properties.Test_suites, optionsMap)
|
||||
test.Properties.Test_config_template, test.Properties.Test_suites, configs)
|
||||
|
||||
test.binaryDecorator.baseInstaller.dir = "nativetest"
|
||||
test.binaryDecorator.baseInstaller.dir64 = "nativetest64"
|
||||
@@ -371,6 +376,10 @@ type BenchmarkProperties struct {
|
||||
// the name of the test configuration template (for example "AndroidTestTemplate.xml") that
|
||||
// should be installed with the module.
|
||||
Test_config_template *string `android:"path,arch_variant"`
|
||||
|
||||
// Add RootTargetPreparer to auto generated test config. This guarantees the test to run
|
||||
// with root permission.
|
||||
Require_root *bool
|
||||
}
|
||||
|
||||
type benchmarkDecorator struct {
|
||||
@@ -403,8 +412,12 @@ func (benchmark *benchmarkDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps
|
||||
|
||||
func (benchmark *benchmarkDecorator) install(ctx ModuleContext, file android.Path) {
|
||||
benchmark.data = android.PathsForModuleSrc(ctx, benchmark.Properties.Data)
|
||||
var configs []tradefed.Config
|
||||
if Bool(benchmark.Properties.Require_root) {
|
||||
configs = append(configs, tradefed.Preparer{"com.android.tradefed.targetprep.RootTargetPreparer"})
|
||||
}
|
||||
benchmark.testConfig = tradefed.AutoGenNativeBenchmarkTestConfig(ctx, benchmark.Properties.Test_config,
|
||||
benchmark.Properties.Test_config_template, benchmark.Properties.Test_suites)
|
||||
benchmark.Properties.Test_config_template, benchmark.Properties.Test_suites, configs)
|
||||
|
||||
benchmark.binaryDecorator.baseInstaller.dir = filepath.Join("benchmarktest", ctx.ModuleName())
|
||||
benchmark.binaryDecorator.baseInstaller.dir64 = filepath.Join("benchmarktest64", ctx.ModuleName())
|
||||
|
Reference in New Issue
Block a user