Merge "Add extra_test_configs option"

This commit is contained in:
Treehugger Robot
2020-08-21 16:22:43 +00:00
committed by Gerrit Code Review
5 changed files with 45 additions and 7 deletions

View File

@@ -167,6 +167,14 @@ func AndroidMkDataPaths(data []android.DataPath) []string {
return testFiles return testFiles
} }
func androidMkWriteExtraTestConfigs(extraTestConfigs android.Paths, entries *android.AndroidMkEntries) {
if len(extraTestConfigs) > 0 {
entries.ExtraEntries = append(entries.ExtraEntries, func(entries *android.AndroidMkEntries) {
entries.AddStrings("LOCAL_EXTRA_FULL_TEST_CONFIGS", extraTestConfigs.Strings()...)
})
}
}
func androidMkWriteTestData(data []android.DataPath, ctx AndroidMkContext, entries *android.AndroidMkEntries) { func androidMkWriteTestData(data []android.DataPath, ctx AndroidMkContext, entries *android.AndroidMkEntries) {
testFiles := AndroidMkDataPaths(data) testFiles := AndroidMkDataPaths(data)
if len(testFiles) > 0 { if len(testFiles) > 0 {
@@ -372,6 +380,7 @@ func (test *testBinary) AndroidMkEntries(ctx AndroidMkContext, entries *android.
}) })
androidMkWriteTestData(test.data, ctx, entries) androidMkWriteTestData(test.data, ctx, entries)
androidMkWriteExtraTestConfigs(test.extraTestConfigs, entries)
} }
func (fuzz *fuzzBinary) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) { func (fuzz *fuzzBinary) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {

View File

@@ -40,8 +40,12 @@ type TestProperties struct {
type TestOptions struct { type TestOptions struct {
// The UID that you want to run the test as on a device. // The UID that you want to run the test as on a device.
Run_test_as *string Run_test_as *string
// A list of free-formed strings without spaces that categorize the test. // A list of free-formed strings without spaces that categorize the test.
Test_suite_tag []string Test_suite_tag []string
// a list of extra test configuration files that should be installed with the module.
Extra_test_configs []string `android:"path,arch_variant"`
} }
type TestBinaryProperties struct { type TestBinaryProperties struct {
@@ -309,9 +313,10 @@ type testBinary struct {
testDecorator testDecorator
*binaryDecorator *binaryDecorator
*baseCompiler *baseCompiler
Properties TestBinaryProperties Properties TestBinaryProperties
data []android.DataPath data []android.DataPath
testConfig android.Path testConfig android.Path
extraTestConfigs android.Paths
} }
func (test *testBinary) linkerProps() []interface{} { func (test *testBinary) linkerProps() []interface{} {
@@ -408,6 +413,8 @@ func (test *testBinary) install(ctx ModuleContext, file android.Path) {
test.testConfig = tradefed.AutoGenNativeTestConfig(ctx, test.Properties.Test_config, test.testConfig = tradefed.AutoGenNativeTestConfig(ctx, test.Properties.Test_config,
test.Properties.Test_config_template, test.Properties.Test_suites, configs, test.Properties.Auto_gen_config) test.Properties.Test_config_template, test.Properties.Test_suites, configs, test.Properties.Auto_gen_config)
test.extraTestConfigs = android.PathsForModuleSrc(ctx, test.Properties.Test_options.Extra_test_configs)
test.binaryDecorator.baseInstaller.dir = "nativetest" test.binaryDecorator.baseInstaller.dir = "nativetest"
test.binaryDecorator.baseInstaller.dir64 = "nativetest64" test.binaryDecorator.baseInstaller.dir64 = "nativetest64"

View File

@@ -161,6 +161,7 @@ func (j *Test) AndroidMkEntries() []android.AndroidMkEntries {
if j.testConfig != nil { if j.testConfig != nil {
entries.SetPath("LOCAL_FULL_TEST_CONFIG", j.testConfig) entries.SetPath("LOCAL_FULL_TEST_CONFIG", j.testConfig)
} }
androidMkWriteExtraTestConfigs(j.extraTestConfigs, entries)
androidMkWriteTestData(j.data, entries) androidMkWriteTestData(j.data, entries)
if !BoolDefault(j.testProperties.Auto_gen_config, true) { if !BoolDefault(j.testProperties.Auto_gen_config, true) {
entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true") entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true")
@@ -170,6 +171,12 @@ func (j *Test) AndroidMkEntries() []android.AndroidMkEntries {
return entriesList return entriesList
} }
func androidMkWriteExtraTestConfigs(extraTestConfigs android.Paths, entries *android.AndroidMkEntries) {
if len(extraTestConfigs) > 0 {
entries.AddStrings("LOCAL_EXTRA_FULL_TEST_CONFIGS", extraTestConfigs.Strings()...)
}
}
func (j *TestHelperLibrary) AndroidMkEntries() []android.AndroidMkEntries { func (j *TestHelperLibrary) AndroidMkEntries() []android.AndroidMkEntries {
entriesList := j.Library.AndroidMkEntries() entriesList := j.Library.AndroidMkEntries()
entries := &entriesList[0] entries := &entriesList[0]
@@ -431,6 +438,7 @@ func (a *AndroidTest) AndroidMkEntries() []android.AndroidMkEntries {
if a.testConfig != nil { if a.testConfig != nil {
entries.SetPath("LOCAL_FULL_TEST_CONFIG", a.testConfig) entries.SetPath("LOCAL_FULL_TEST_CONFIG", a.testConfig)
} }
androidMkWriteExtraTestConfigs(a.extraTestConfigs, entries)
androidMkWriteTestData(a.data, entries) androidMkWriteTestData(a.data, entries)
}) })

View File

@@ -1034,8 +1034,9 @@ type AndroidTest struct {
testProperties testProperties testProperties testProperties
testConfig android.Path testConfig android.Path
data android.Paths extraTestConfigs android.Paths
data android.Paths
} }
func (a *AndroidTest) InstallInTestcases() bool { func (a *AndroidTest) InstallInTestcases() bool {
@@ -1063,6 +1064,7 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
testConfig := tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, testConfig := tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config,
a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites, a.testProperties.Auto_gen_config, configs) a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites, a.testProperties.Auto_gen_config, configs)
a.testConfig = a.FixTestConfig(ctx, testConfig) a.testConfig = a.FixTestConfig(ctx, testConfig)
a.extraTestConfigs = android.PathsForModuleSrc(ctx, a.testProperties.Test_options.Extra_test_configs)
a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data) a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data)
} }

View File

@@ -2124,6 +2124,12 @@ func LibraryHostFactory() android.Module {
// Java Tests // Java Tests
// //
// Test option struct.
type TestOptions struct {
// a list of extra test configuration files that should be installed with the module.
Extra_test_configs []string `android:"path,arch_variant"`
}
type testProperties struct { type testProperties struct {
// list of compatibility suites (for example "cts", "vts") that the module should be // list of compatibility suites (for example "cts", "vts") that the module should be
// installed into. // installed into.
@@ -2149,6 +2155,9 @@ type testProperties struct {
// Add parameterized mainline modules to auto generated test config. The options will be // Add parameterized mainline modules to auto generated test config. The options will be
// handled by TradeFed to do downloading and installing the specified modules on the device. // handled by TradeFed to do downloading and installing the specified modules on the device.
Test_mainline_modules []string Test_mainline_modules []string
// Test options.
Test_options TestOptions
} }
type hostTestProperties struct { type hostTestProperties struct {
@@ -2177,8 +2186,9 @@ type Test struct {
testProperties testProperties testProperties testProperties
testConfig android.Path testConfig android.Path
data android.Paths extraTestConfigs android.Paths
data android.Paths
} }
type TestHost struct { type TestHost struct {
@@ -2217,6 +2227,8 @@ func (j *Test) GenerateAndroidBuildActions(ctx android.ModuleContext) {
j.data = android.PathsForModuleSrc(ctx, j.testProperties.Data) j.data = android.PathsForModuleSrc(ctx, j.testProperties.Data)
j.extraTestConfigs = android.PathsForModuleSrc(ctx, j.testProperties.Test_options.Extra_test_configs)
ctx.VisitDirectDepsWithTag(dataNativeBinsTag, func(dep android.Module) { ctx.VisitDirectDepsWithTag(dataNativeBinsTag, func(dep android.Module) {
j.data = append(j.data, android.OutputFileForModule(ctx, dep, "")) j.data = append(j.data, android.OutputFileForModule(ctx, dep, ""))
}) })