BuildInfo
in TF is a widely used object to carry resources for test setup and runs.
Everything from device images to test APKs are stored or linked in BuildInfo
.
This allows a unified way to access test resources from a test
and decouple the test from getting test resources.
BuildInfo properties
The two main properties of BuildInfo
objects are attributes and files:
- Attributes can be added with
#addBuildAttribute()
; they represent labels and string information to the builds. Attributes can be used to store information related to the build. - Files can be added with
setFile()
; the file is tracked and managed byBuildInfo
during the invocation lifecycle (for example, properly handled during sharding). This avoids the need for the test to know anything about the file system and instead can rely on the abstractedBuildInfo
object to get their resources.
BuildInfo in multi-devices
When a test configuration is set up with multiple devices, one BuildInfo
object exists per device. This allows requesting and targeting files from one
device to another.
BuildInfo in multi-builds
It's possible to require builds from several targets. In these cases, one
BuildInfo
object exists per target. This allows requesting and targeting
files from any target.
Proto format
BuildInfo
is serializable in a protobuf format to make its usage easier across
systems if needed.