Adds a variety of refinements to isolation runner.

When initially trying to run some of the robolectric tests under this
new runner, there arose some unforeseen issues (like dependencies
including things in the java.lang package) that for now are mitigated by
the runner.  Additionally, the change to using RunUtil inadvertantly
disabled output streaming from the subprocess, which this CL fixes.
Lastly for the major changes, this changes the qualification of what
counts as "the correct annotations" which excludes classes which specify
the "RunWith" annotation, but use a runner that does not subclass the
JUnit4 runner.

Edit #1: I moved the fakeExecution out of HostUtils into a proper class
that extends the JUnit Runner API.  This makes the flow when dry running
a test quite a bit more similar to the flow when running for real.

Bug: b/130198687
Test: incomplete, but no regressions in existing
Change-Id: I4a6fda942e47978506a6ddc82c5f8a03dc04b690
10 files changed
tree: 5abf0a4fb4539b7b4e319e4044896c89efb21641
  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.