Force Test Mapping and atest run to unroot device before running tests

Test Mapping has other target preparers that may leave the device as
root and run tests as root user. atest, on the other hand, doesn't
enforce device root status before the test run.
If a native test has test config without specifying RootTargetPreparer,
such behavior difference can cause confusion that the native test may fail
locally through atest if the device is unroot, while a presubmit run
shows the test can run as root.

Note that a native test with auto-generated test config won't have such
problem, since auto-generated test config for cc_test and cc_benchmark
will guarantee to have RootTargetPreparer.

Bug: 141761471
Test: atest run
Change-Id: If88c3da54705ddb12af3ef41299eb5b32aea744f
2 files changed
tree: 5fabd0e3e6100b4e0d98ae9dbe85d2baeac1b4e7
  1. atest/
  2. clearcut_client/
  3. common_util/
  4. device_build_interfaces/
  5. global_configuration/
  6. invocation_interfaces/
  7. proto/
  8. python-lib/
  9. remote/
  10. res/
  11. src/
  12. test_framework/
  13. test_result_interfaces/
  14. tests/
  15. util-apps/
  16. .classpath
  17. .gitignore
  18. .project
  19. Android.bp
  20. Android.mk
  21. atest_tradefed.sh
  22. CleanSpec.mk
  23. error_prone_rules.mk
  24. MANIFEST.mf
  25. OWNERS
  26. PREUPLOAD.cfg
  27. pylintrc
  28. README.md
  29. run_tf_cmd.sh
  30. script_help.sh
  31. TEST_MAPPING
  32. tradefed.sh
  33. 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.