Bp2build for errorprone modules that manually enabled/disabled it

Test: go test ./bp2build
Change-Id: Ie60c0959ee9ae8ce86c11a8e85a0bc7592f63df8
This commit is contained in:
Alix
2023-06-20 21:00:40 +00:00
parent c0dac52975
commit b1e5c6a69a
2 changed files with 46 additions and 24 deletions

View File

@@ -183,8 +183,8 @@ func TestJavaLibraryJavaVersion(t *testing.T) {
})
}
func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) {
runJavaLibraryTestCase(t, Bp2buildTestCase{
func TestJavaLibraryErrorproneEnabledManually(t *testing.T) {
runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{
Blueprint: `java_library {
name: "java-lib-1",
srcs: ["a.java"],
@@ -192,7 +192,13 @@ func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) {
errorprone: {
enabled: true,
javacflags: ["-Xep:SpeedLimit:OFF"],
extra_check_modules: ["plugin2"],
},
}
java_plugin {
name: "plugin2",
srcs: ["a.java"],
bazel_module: { bp2build_available: false },
}`,
ExpectedBazelTargets: []string{
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
@@ -200,10 +206,14 @@ func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) {
"-Xsuper-fast",
"-Xep:SpeedLimit:OFF",
]`,
"plugins": `[":plugin2"]`,
"srcs": `["a.java"]`,
"errorprone_force_enable": `True`,
}),
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
},
}, func(ctx android.RegistrationContext) {
ctx.RegisterModuleType("java_plugin", java.PluginFactory)
})
}
@@ -227,7 +237,7 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledByDefault(t *testing.T
})
}
func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T) {
func TestJavaLibraryErrorproneDisabledManually(t *testing.T) {
runJavaLibraryTestCase(t, Bp2buildTestCase{
Blueprint: `java_library {
name: "java-lib-1",
@@ -235,12 +245,14 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T)
javacflags: ["-Xsuper-fast"],
errorprone: {
enabled: false,
javacflags: ["-Xep:SpeedLimit:OFF"],
},
}`,
ExpectedBazelTargets: []string{
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
"javacopts": `["-Xsuper-fast"]`,
"javacopts": `[
"-Xsuper-fast",
"-XepDisableAllChecks",
]`,
"srcs": `["a.java"]`,
}),
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),

View File

@@ -2770,6 +2770,7 @@ type javaCommonAttributes struct {
Javacopts bazel.StringListAttribute
Sdk_version bazel.StringAttribute
Java_version bazel.StringAttribute
Errorprone_force_enable bazel.BoolAttribute
}
type javaDependencyLabels struct {
@@ -2911,26 +2912,35 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext)
staticDeps.Add(&bazel.Label{Label: ":" + javaAidlLibName})
}
var javacopts []string
var javacopts bazel.StringListAttribute //[]string
plugins := bazel.MakeLabelListAttribute(
android.BazelLabelForModuleDeps(ctx, m.properties.Plugins),
)
if m.properties.Javacflags != nil {
javacopts = append(javacopts, m.properties.Javacflags...)
javacopts = bazel.MakeStringListAttribute(m.properties.Javacflags)
}
epEnabled := m.properties.Errorprone.Enabled
epJavacflags := m.properties.Errorprone.Javacflags
var errorproneForceEnable bazel.BoolAttribute
if epEnabled == nil {
//TODO(b/227504307) add configuration that depends on RUN_ERROR_PRONE environment variable
if Bool(epEnabled) {
javacopts = append(javacopts, m.properties.Errorprone.Javacflags...)
} else if *epEnabled {
plugins.Append(bazel.MakeLabelListAttribute(android.BazelLabelForModuleDeps(ctx, m.properties.Errorprone.Extra_check_modules)))
javacopts.Append(bazel.MakeStringListAttribute(epJavacflags))
errorproneForceEnable.Value = epEnabled
} else {
javacopts.Append(bazel.MakeStringListAttribute([]string{"-XepDisableAllChecks"}))
}
commonAttrs := &javaCommonAttributes{
Srcs: javaSrcs,
javaResourcesAttributes: m.convertJavaResourcesAttributes(ctx),
Plugins: bazel.MakeLabelListAttribute(
android.BazelLabelForModuleDeps(ctx, m.properties.Plugins),
),
Javacopts: bazel.MakeStringListAttribute(javacopts),
Plugins: plugins,
Javacopts: javacopts,
Java_version: bazel.StringAttribute{Value: m.properties.Java_version},
Sdk_version: bazel.StringAttribute{Value: m.deviceProperties.Sdk_version},
Errorprone_force_enable: errorproneForceEnable,
}
for axis, configToProps := range archVariantProps {