tree: e77aeb47a1dde8092ff752965e23ef712a77b8ef [search]
  1. conftest.py
  2. harness.py
  3. README.md
  4. test_failures.py
  5. test_groups.py
  6. test_harness.py
  7. test_init_sync.py
  8. test_manifest_regressions.py
  9. test_partial_clone.py
  10. test_sync_modes.py
  11. test_workflows.py
tests/e2e/README.md

Repo End-to-End Tests

These tests run the real repo launcher & code (as subprocesses) against a local git smart HTTP server. They are hermetic: everything is served from 127.0.0.1 out of temporary directories, and the user's git config & environment are ignored.

They run as part of ./run_tests by default, after the unit tests.

Running

# Everything (unit + e2e).
./run_tests

# Only the e2e tests.
./run_tests -m e2e

# Everything but the e2e tests.
./run_tests -m 'not e2e'

The suite is skipped automatically when git http-backend isn't available, when git is older than 2.28 (need default branch support and superproject support), or when not run from a git checkout.

Layout

  • harness.py: the git server, server-side repos & the repo client.
  • test_init_sync.py: core repo init & repo sync options.
  • test_partial_clone.py: partial clones, incl. the standard Android configuration from go/repo-init & go/sync.
  • test_sync_modes.py: sync -n/-l & the other sync flags.
  • test_groups.py: manifest groups.
  • test_failures.py: failure paths (missing projects, dirty trees, ...).
  • test_workflows.py: multi-step workflows.
  • test_manifest_regressions.py: manifests that broke users in the past.