Add "test-only" flag for java modules
As part of aosp/3022586 where we added the idea of "test-only" modules and top_level_test_targets, this CL implements that for java modules. We let users set "test-only" on java_library, but not on other modules where the module kind is implicitly test-only, like java_test. The implementation, not the user decides it is test-only. We also exclude it from java_defaults. % gqui from "flatten(~/aosp-main-with-phones/out/soong/ownership/all_teams.pb, teams)" proto team.proto:AllTeams 'select teams.kind, count(*) where teams.test_only = true and teams.kind not like "%cc_%" group by teams.kind' +--------------------------+----------+ | teams.kind | count(*) | +--------------------------+----------+ | android_test | 1382 | | android_test_helper_app | 1680 | | java_fuzz | 5 | | java_test | 774 | | java_test_helper_library | 29 | +--------------------------+----------+ % gqui from "flatten(~/aosp-main-with-phones/out/soong/ownership/all_teams.pb, teams)" proto team.proto:AllTeams 'select teams.kind, count(*) where teams.top_level_target = true and teams.kind not like "%cc_%" group by teams.kind' +--------------+----------+ | teams.kind | count(*) | +--------------+----------+ | android_test | 1382 | | java_fuzz | 5 | | java_test | 774 | +--------------+----------+ Test: m nothing --no-skip-soong-tests Test: go test ./java Test: m all_teams Bug: b/327280661 Change-Id: I9c3ad947dc3d68d6427abada27449526d69daa6b
This commit is contained in:
@@ -4432,6 +4432,44 @@ func TestNoDexpreoptOptionalUsesLibDoesNotHaveImpl(t *testing.T) {
|
||||
android.AssertBoolEquals(t, "dexpreopt should be disabled if optional_uses_libs does not have an implementation", true, dexpreopt == nil)
|
||||
}
|
||||
|
||||
func TestTestOnlyApp(t *testing.T) {
|
||||
t.Parallel()
|
||||
ctx := android.GroupFixturePreparers(
|
||||
prepareForJavaTest,
|
||||
).RunTestWithBp(t, `
|
||||
// These should be test-only
|
||||
android_test {
|
||||
name: "android-test",
|
||||
}
|
||||
android_test_helper_app {
|
||||
name: "helper-app",
|
||||
}
|
||||
override_android_test {
|
||||
name: "override-test",
|
||||
base: "android-app",
|
||||
}
|
||||
// And these should not be
|
||||
android_app {
|
||||
name: "android-app",
|
||||
srcs: ["b.java"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
`)
|
||||
|
||||
expectedTestOnly := []string{
|
||||
"android-test",
|
||||
"helper-app",
|
||||
"override-test",
|
||||
}
|
||||
|
||||
expectedTopLevel := []string{
|
||||
"android-test",
|
||||
"override-test",
|
||||
}
|
||||
|
||||
assertTestOnlyAndTopLevel(t, ctx, expectedTestOnly, expectedTopLevel)
|
||||
}
|
||||
|
||||
func TestAppStem(t *testing.T) {
|
||||
ctx := testApp(t, `
|
||||
android_app {
|
||||
|
Reference in New Issue
Block a user