BuildInfo in Tradefed

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 by BuildInfo 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 abstracted BuildInfo 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.