aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorDan Shi <dshi@google.com>2019-07-15 11:04:06 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-07-15 11:04:06 -0700
commitb942bd8030c83d4e1edd40e41d703e93c0bbae1e (patch)
tree583f7d792818e4286cfe6c6733573d72297bf2a6 /cc
parentc835e6c66d40f21247a2935b887caec7473567e0 (diff)
parent40c0afeb7c6606eeb74285f6cdaa956743f3a0cd (diff)
downloadbuild_soong-b942bd8030c83d4e1edd40e41d703e93c0bbae1e.tar.gz
build_soong-b942bd8030c83d4e1edd40e41d703e93c0bbae1e.tar.bz2
build_soong-b942bd8030c83d4e1edd40e41d703e93c0bbae1e.zip
Support require_root in auto-gen test configs
am: 40c0afeb7c Change-Id: Icfdb4e7517948722f90af17dca4b41aa0840b86f
Diffstat (limited to 'cc')
-rw-r--r--cc/test.go27
1 files changed, 20 insertions, 7 deletions
diff --git a/cc/test.go b/cc/test.go
index dae2a377..c735fd91 100644
--- a/cc/test.go
+++ b/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{}
+ 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) {
- optionsMap["not-shardable"] = "true"
+ 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())