Remove incorrect strict test for test-suites for test_module_config

I misunderstood our desire to eventually migrate all
`test_module_config` modules -> "general-tests" for the requirement that
it must be used now.

While working on converting these modules to use symlinks rather than
copies of data files, I noticed a problem if the derived test was in
"general-tests", but the base test was in "device-tests". The symlink
would not have a base to point to in general-tests.zip.

Allow the derived tests to be in other suites for now.

Test: go test ./tradefed_modules/
Test: m blueprint_tests
Change-Id: I9524d6c3964db6de38fc3c4cb4c5bc493dadc0db
This commit is contained in:
Ronald Braunstein 2024-04-30 14:02:59 +00:00
parent 0dd436cd0a
commit b4a4ef9d23
2 changed files with 5 additions and 47 deletions

View file

@ -160,35 +160,17 @@ func (m *testModuleConfigModule) GenerateAndroidBuildActions(ctx android.ModuleC
}
// Any test suites in base should not be repeated in the derived class, except "general-tests".
// We may restrict derived tests to only be "general-tests" as it doesn't make sense to add a slice
// of a test to compatibility suite.
// Ensure at least one test_suite is listed. Ideally it should be general-tests
// or device-tests, whichever is listed in base and prefer general-tests if both are listed.
// However this is not enforced yet.
//
// Returns ErrorMessage, false on problems
// Returns _, true if okay.
// Returns true if okay and reports errors via ModuleErrorf.
func (m *testModuleConfigModule) validateTestSuites(ctx android.ModuleContext) bool {
if len(m.tradefedProperties.Test_suites) == 0 {
ctx.ModuleErrorf("At least one test-suite must be set or this won't run. Use \"general-tests\"")
ctx.ModuleErrorf("At least one test-suite must be set or this won't run. Use \"general-tests\" or \"device-tests\"")
return false
}
derivedSuites := make(map[string]bool)
// See if any suites in base is also in derived (other than general-tests)
for _, s := range m.tradefedProperties.Test_suites {
if s != "general-tests" {
derivedSuites[s] = true
}
}
if len(derivedSuites) == 0 {
return true
}
for _, baseSuite := range m.provider.TestSuites {
if derivedSuites[baseSuite] {
ctx.ModuleErrorf("TestSuite %s exists in the base, do not add it here", baseSuite)
return false
}
}
return true
}

View file

@ -325,30 +325,6 @@ func TestModuleConfigHostNeedsATestSuite(t *testing.T) {
RunTestWithBp(t, badBp)
}
func TestModuleConfigHostDuplicateTestSuitesGiveErrors(t *testing.T) {
badBp := `
java_test_host {
name: "base",
srcs: ["a.java"],
test_suites: ["general-tests", "some-compat"],
}
test_module_config_host {
name: "derived_test",
base: "base",
exclude_filters: ["android.test.example.devcodelab.DevCodelabTest#testHelloFail"],
include_annotations: ["android.platform.test.annotations.LargeTest"],
test_suites: ["general-tests", "some-compat"],
}`
android.GroupFixturePreparers(
java.PrepareForTestWithJavaDefaultModules,
android.FixtureRegisterWithContext(RegisterTestModuleConfigBuildComponents),
).ExtendWithErrorHandler(
android.FixtureExpectsAtLeastOneErrorMatchingPattern("TestSuite some-compat exists in the base")).
RunTestWithBp(t, badBp)
}
func TestTestOnlyProvider(t *testing.T) {
t.Parallel()
ctx := android.GroupFixturePreparers(