Starts the containment wrapper for host testing.

This is going to take lots more changes before anything works or
has proper unit tests written.  However, this lays the foundation
for at least the containment environment portion of our efforts to
support pure host testing.

Update: Now seems to work for HelloWorldHostTest, but still need
to write unit tests, test with more taxing workloads, and
find a way to trigger dry runs conveniently.

Update #2: Flipped the handshake protocol and implemented random
port assignment to allow multiple instances to run on one machine.

Update #3: Extracted some of the utility functions to a namespace
called "minimal" so that we can reuse those elsewhere.

Update #4: Code cleanup and log forwarding from subprocess through
CLog.  Also adds ITestAnnotationFilterReceiver implementation.

Update #5: Changed to use RunUtil in subprocess invocation and use the
location of the main tradefed.jar to infer the location of
tradefed-isolation.jar.

Bug: b/130198687
Test: Incomplete
Change-Id: Icaa3989e3d580ddabe9c3f6b4d1d40276a61bfc4
14 files changed
tree: 3b718d6c6b61b614736289518d750d8adf96d486
  1. atest/
  2. clearcut_client/
  3. common_util/
  4. device_build_interfaces/
  5. global_configuration/
  6. invocation_interfaces/
  7. isolation/
  8. lite/
  9. proto/
  10. python-lib/
  11. remote/
  12. res/
  13. src/
  14. test_framework/
  15. test_result_interfaces/
  16. tests/
  17. util-apps/
  18. .classpath
  19. .gitignore
  20. .project
  21. Android.bp
  22. Android.mk
  23. atest_tradefed.sh
  24. CleanSpec.mk
  25. error_prone_rules.mk
  26. MANIFEST.mf
  27. OWNERS
  28. PREUPLOAD.cfg
  29. pylintrc
  30. README.md
  31. run_tf_cmd.sh
  32. script_help.sh
  33. TEST_MAPPING
  34. tradefed.sh
  35. tradefed_win.bat
README.md

Trade Federation (TF / Tradefed)

TF is a test harness used to drive Android automated testing. It runs on test hosts and monitors the connected devices, handling test scheduling & execution and device management.

Other test harnesses like Compatibility Test Suite (CTS) and Vendor Test Suite (VTS) use TF as a basis and extend it for their particular needs.

Building TF:

  • source build/envsetup.sh
  • tapas tradefed-all
  • make -j8

More information at: https://source.android.com/devices/tech/test_infra/tradefed/

See more details about Tradefed Architecture at: https://source.android.com/devices/tech/test_infra/tradefed/architecture

If you are a tests writer you should start looking in the test_framework/ component which contains everything needed to write a tests in Tradefed.