commit | d5c8b445675ab5b6f577195ea5ac1129d14daca2 | [log] [tgz] |
---|---|---|
author | Robert Iannucci <iannucci@chromium.org> | Thu May 09 16:31:27 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu May 09 16:31:27 2024 |
tree | 347d250b0eb8e5118469b646c907cff9c0e96e98 | |
parent | 536ac16045acc49762b9f1053abb9e7fa5acd2b1 [diff] |
[ftt] Add "from the top" replacement for Convey suites. This implements a semantically-equivalent variant of the goconvey "Convey" construct, except that: * This uses go testing's `t.Run` subtest mechanism * No usage of `gls` - no hidden state. * Fully compatible with all assertion libraries using `testing.TB` or `*testing.T`. * Supports parallel execution of sub-tests (goconvey does not). This will allow us to programmatically rewrite our tests to drop the dependency on goconvey (and thus gls) without having to manually touch everything. After dropping the goconvey dependency, we will be in a position where tests may or may not be written with `ftt`, and it will be easy to adapt them to/from this style vs plain tests just directly using `t.Run()` if desired, because it will fully decouple the assertions from the 'layout' of the tests. R=gregorynisbet@google.com Change-Id: Iab9cdc80a9fc90bccfe902a2bcfa2b7386f9ae8a Bug: 319730573 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/4917850 Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: Gregory Nisbet <gregorynisbet@google.com> Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:
fetch infra cd infra/go eval `./env.py` cd src/go.chromium.org/luci
It is now possible to directly install tools with go install:
go install go.chromium.org/luci/auth/client/cmd/...@latest go install go.chromium.org/luci/buildbucket/cmd/...@latest go install go.chromium.org/luci/cipd/client/cmd/...@latest go install go.chromium.org/luci/client/cmd/...@latest go install go.chromium.org/luci/cv/cmd/...@latest go install go.chromium.org/luci/gce/cmd/...@latest go install go.chromium.org/luci/grpc/cmd/...@latest go install go.chromium.org/luci/logdog/client/cmd/...@latest go install go.chromium.org/luci/luci_notify/cmd/...@latest go install go.chromium.org/luci/lucicfg/cmd/...@latest go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest go install go.chromium.org/luci/mailer/cmd/...@latest go install go.chromium.org/luci/mmutex/cmd/...@latest go install go.chromium.org/luci/resultdb/cmd/...@latest go install go.chromium.org/luci/server/cmd/...@latest go install go.chromium.org/luci/swarming/cmd/...@latest go install go.chromium.org/luci/tokenserver/cmd/...@latest go install go.chromium.org/luci/tools/cmd/...@latest
Contributing uses the same flow as Chromium contributions.