swiftlang/swift

Add test coverage for `update-checkout --stash` option

Open

#72.523 aberto em 22 de mar. de 2024

Ver no GitHub
 (3 comments) (0 reactions) (1 assignee)Swift (10.719 forks)batch import
contributor experiencegood first issuetest suiteupdate-checkoututils

Métricas do repositório

Stars
 (69.989 stars)
Métricas de merge de PR
 (Mesclagem média 8d 17h) (510 fundiu PRs em 30d)

Description

update-checkout has a Python unit test suite at utils/update_checkout/tests. You can run it using utils/update_checkout/run_tests.py or lit + validation-test/Python/update_checkout.swift. The test suite is centered around an intermediary unittest.TestCase subclass from which all the effective test classes inherit. This base class is responsible for setting up and tearing down a mock-up environment consisting of a directory of local remotes and a source root — a directory for their clones. Subclasses define test functions that run update-checkout commands against these mock repositories and perform state checks.

I think a single test function that

  1. clones the remotes using update-checkout
  2. creates some untracked files in several clones
  3. runs update-checkout with --stash
  4. verifies that the untracked files have indeed been stashed and nothing else happened

would good enough for now (the update/clone tests, if any, are really basic anyway). I would place this function in a new subclass in its own file.

Originally posted by @AnthonyLatsis in https://github.com/apple/swift/issues/71178#issuecomment-2015764863

Guia do colaborador