handle virutalenv race condition across processes

simultaneous virutalenv: Errno 26
virtualenv while pip install: Errno 26
pip install while virtualenv: both success
simultaneous install of same pip package: both success

The above result shows we only have to handle errno 26 for race condition

This CL checks errno 26 and wait for other process to complete virtuanenv prep.
Now when virtualenv is created, the preparer will create an empty file named 'complete' to indicate that the process is finished.
The 'complete' file and double loop retries of the virtualenv creation method handles the case where process 1 waits for process 2 to complete but process 2 crashed while creating virtualenv.

Test: run vts-dev
Change-Id: I9e329cd895feced7e708b82cb5d70107e96598d3
1 file changed
tree: b915a02d2cdc036ac2b5f8645b0078d1ca3bce7a
  1. agents/
  2. compilation_tools/
  3. doc/
  4. drivers/
  5. hals/
  6. harnesses/
  7. proto/
  8. runners/
  9. script/
  10. specification/
  11. testcases/
  12. tools/
  13. utils/
  14. .clang-format
  15. .gitignore
  16. __init__.py
  17. Android.bp
  18. OWNERS
  19. PREUPLOAD.cfg
  20. README.md
  21. setup.py
README.md

Android Vendor Test Suite (VTS)

VTS consists of a set of testing frameworks and test cases, designed to help enhance the robustness, reliability, and compliance of:

  • the Android system (e.g., Core HALs and libraries) and
  • low-level system software (e.g., kernel, module, and firmware).

VTS has mainly two types of test suites:

  • automated (e.g., record-and-replay and fuzzing) and
  • structural (e.g., gTest and host-driven python) testing.

While the VTS framework and test cases are designed for userdebug or eng build devices, some test cases can be run on user build devices using its app namely, VTS Agent App.

Table of Contents

  1. VTS User Manual
  2. Where to find VTS test cases
  3. VTS Test Developer Manual (Codelab)