Add Config,RunningInsideUnitTest

Sometimes it is necessary for some functionality to be disabled while
running in unit tests, e.g. functionality that requires external
information such as error prone tools and configuration. Sometimes it
is necessary for some functionality to be enabled while running in
unit tests, e.g. functionality that makes state available for
testing but which is not necessary at runtime.

Previously, that was done by checking to see if TestProductVariables
was nil. This change adds a method to abstract that.

Bug: 245956352
Test: m nothing
Change-Id: I7845b79328e7180623161a9bf897568089da4e4f
(cherry picked from commit 741355826f)
Merged-In: I7845b79328e7180623161a9bf897568089da4e4f
This commit is contained in:
Paul Duffin
2022-10-06 11:01:59 +01:00
committed by Cherrypicker Worker
parent ddf000f42c
commit a47df7fe25
2 changed files with 6 additions and 1 deletions

View File

@@ -93,6 +93,11 @@ func (c Config) PrimaryBuilderInvocations() []bootstrap.PrimaryBuilderInvocation
return []bootstrap.PrimaryBuilderInvocation{}
}
// RunningInsideUnitTest returns true if this code is being run as part of a Soong unit test.
func (c Config) RunningInsideUnitTest() bool {
return c.config.TestProductVariables != nil
}
// A DeviceConfig object represents the configuration for a particular device
// being built. For now there will only be one of these, but in the future there
// may be multiple devices being built.

View File

@@ -881,7 +881,7 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB
epEnabled := j.properties.Errorprone.Enabled
if (ctx.Config().RunErrorProne() && epEnabled == nil) || Bool(epEnabled) {
if config.ErrorProneClasspath == nil && ctx.Config().TestProductVariables == nil {
if config.ErrorProneClasspath == nil && !ctx.Config().RunningInsideUnitTest() {
ctx.ModuleErrorf("cannot build with Error Prone, missing external/error_prone?")
}