Support per-testcase directories in all test suites
There are cases where two modules try to install the same test data into CTS, which results in collisions when CTS puts the data for all tests in the same directory. Add a flag that allows enabling a per-testcase directory for an individual test for all test suites. Bug: 193168159 Test: cts-tradefed run commandAndExit CtsBionicTestCases Change-Id: If034723e8fe937ca71d3e2d39b7d46702e41bc8c
This commit is contained in:
@@ -147,20 +147,21 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
}
|
||||
|
||||
// Called for modules that are a component of a test suite.
|
||||
func testSuiteComponent(entries *android.AndroidMkEntries, test_suites []string) {
|
||||
func testSuiteComponent(entries *android.AndroidMkEntries, test_suites []string, perTestcaseDirectory bool) {
|
||||
entries.SetString("LOCAL_MODULE_TAGS", "tests")
|
||||
if len(test_suites) > 0 {
|
||||
entries.AddCompatibilityTestSuites(test_suites...)
|
||||
} else {
|
||||
entries.AddCompatibilityTestSuites("null-suite")
|
||||
}
|
||||
entries.SetBoolIfTrue("LOCAL_COMPATIBILITY_PER_TESTCASE_DIRECTORY", perTestcaseDirectory)
|
||||
}
|
||||
|
||||
func (j *Test) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
entriesList := j.Library.AndroidMkEntries()
|
||||
entries := &entriesList[0]
|
||||
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
testSuiteComponent(entries, j.testProperties.Test_suites)
|
||||
testSuiteComponent(entries, j.testProperties.Test_suites, Bool(j.testProperties.Per_testcase_directory))
|
||||
if j.testConfig != nil {
|
||||
entries.SetPath("LOCAL_FULL_TEST_CONFIG", j.testConfig)
|
||||
}
|
||||
@@ -188,7 +189,7 @@ func (j *TestHelperLibrary) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
entriesList := j.Library.AndroidMkEntries()
|
||||
entries := &entriesList[0]
|
||||
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
testSuiteComponent(entries, j.testHelperLibraryProperties.Test_suites)
|
||||
testSuiteComponent(entries, j.testHelperLibraryProperties.Test_suites, Bool(j.testHelperLibraryProperties.Per_testcase_directory))
|
||||
})
|
||||
|
||||
return entriesList
|
||||
@@ -450,7 +451,7 @@ func (a *AndroidTest) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
entriesList := a.AndroidApp.AndroidMkEntries()
|
||||
entries := &entriesList[0]
|
||||
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
testSuiteComponent(entries, a.testProperties.Test_suites)
|
||||
testSuiteComponent(entries, a.testProperties.Test_suites, Bool(a.testProperties.Per_testcase_directory))
|
||||
if a.testConfig != nil {
|
||||
entries.SetPath("LOCAL_FULL_TEST_CONFIG", a.testConfig)
|
||||
}
|
||||
@@ -466,7 +467,7 @@ func (a *AndroidTestHelperApp) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
entriesList := a.AndroidApp.AndroidMkEntries()
|
||||
entries := &entriesList[0]
|
||||
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
testSuiteComponent(entries, a.appTestHelperAppProperties.Test_suites)
|
||||
testSuiteComponent(entries, a.appTestHelperAppProperties.Test_suites, Bool(a.appTestHelperAppProperties.Per_testcase_directory))
|
||||
// introduce a flag variable to control the generation of the .config file
|
||||
entries.SetString("LOCAL_DISABLE_TEST_CONFIG", "true")
|
||||
})
|
||||
@@ -677,7 +678,7 @@ func (a *AndroidTestImport) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
entriesList := a.AndroidAppImport.AndroidMkEntries()
|
||||
entries := &entriesList[0]
|
||||
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
testSuiteComponent(entries, a.testProperties.Test_suites)
|
||||
testSuiteComponent(entries, a.testProperties.Test_suites, Bool(a.testProperties.Per_testcase_directory))
|
||||
androidMkWriteTestData(a.data, entries)
|
||||
})
|
||||
return entriesList
|
||||
|
Reference in New Issue
Block a user