Introduce LAVA TradeFed templates

Generate the LAVA job definitions from Jinja2 templates for TradeFed
based suites (xTS).

A working example is given with CTS which is split in several templates
to cope with our setup limitations:

- Not all devices have the same hardware attributes (e.g. dual SIM,
  micro-SD card, FP2 vs. FP2.5) and some modules do not require any
  extra hardware at all. Splitting them allows for a more flexible
  scheduling.
- AppSecurityHost and Net are known to fail if run on multiple DUTs.
- Deqp and Media will run on only one DUT no matter what, thus
  blocking the whole job they belong.

Change-Id: I4f7a393c4a50b7e3cfa4ced0abfb46f5655955b1
15 files changed
tree: 6016b290f6c09c2be65b03e3e8c5275a86b7d183
  1. lava/
  2. .gitignore
  3. fetch-and-push-partner
  4. merge-partner-on-aosp
  5. ota_install
  6. README.md
  7. requirements-dev.txt
README.md

Fairphone tools

A collection of tools developed at Fairphone related to Android development:

  • lava/: tools to interact with LAVA, the automated testing system.
  • scripts in the root directory:
    • fetch-and-push-partner: a script to fetch the AOSP partner security branches in the Android tree and push them to our own repositories.
    • merge-partner-on-aosp: a script to merge the AOSP partner security branches in the Android tree.
    • ota_install: a script to push an OTA to a device and initiate the update process with the Fairphone Updater.

Developing

Code style, linters, and formatters must be used before submitting any new tool.

Within a Python 3.6 environment:

$ pip install -r requirements-dev.txt

Bash/Shell

Note: Portable shell scripts are favoured over Bash scripts.

Follow what the Bashate style checker recommends.

$ bashate --verbose <file>

Python

Note: Python 3 is favoured over Python 2.

Let the Black formatter craft Python source for you.

$ black -l 80 --verbose <file>