TestVariantSingletonModule tests that an error is produced when a
mutator creates variants of a SingletonModule. It also triggers
a data race when cloneLogicModules copies the properties, as the
ModuleFactory of a SingletonModule always returns the same module
with the same property structs. The build is about to fail with an
error anyways, so hopefully the data race isn't a problem. There
is no way to disable the test when the data race detector is enabled,
so disable it when -short is enabled, which is the case for all of
our CI testing.
Test: go test -race -short ./...
Change-Id: I944a4901acb60df8e590270f178961d95095a7e9
A SingletonModule is halfway between a Singleton and a Module. It has
access to visiting other modules via its GenerateSingletonBuildActions
method, but must be defined in an Android.bp file and can also be
depended on like a module.
Bug: 176904285
Test: singleton_module_test.go
Change-Id: I1b2bfdfb3927c1eabf431c53213cb7c581e33ca4