Skip to content

test: don't generate discovery tests in a macro#1711

Merged
hawkw merged 7 commits intomainfrom
eliza/no-disco-tests-macro
Jun 3, 2022
Merged

test: don't generate discovery tests in a macro#1711
hawkw merged 7 commits intomainfrom
eliza/no-disco-tests-macro

Conversation

@hawkw
Copy link
Contributor

@hawkw hawkw commented May 25, 2022

Currently, the service discovery integration tests are generated using a
giant macro that expands to all of the different tests. The macro is
used to run the tests with both HTTP/1 (with and without absolute URIs)
and HTTP/2 clients/servers. This approach has some downsides:

  1. All of the test code is contained inside a macro. This means that
    rustfmt will not reformat it, and (in some cases) compilation
    errors can be unclear.
  2. The macro-generated code is relatively inflexible. This makes it
    difficult to add new tests that need to do slightly different things.
  3. Adding new configurations to the macro is complex. If we want to add
    some new thing that can also be passed in to change the generated
    code, we have to modify a bunch of macro match arms, which is
    annoying and time-consuming.

This PR changes these tests similarly to the way #1705 modified the
profiles integration tests. Rather than generating the tests themselves
inside the macro, we define version-agnostic test bodies in a
cross_version module, which accept the HTTP version configuration as
an argument. Now, a much simpler macro is used to just generate simple
test wrappers that call into the cross-version test definitions. This
means that none of the actual test code is inside of a macro expansion.

Depends on #1705

Base automatically changed from eliza/profile-test-builder to main May 25, 2022 19:00
@hawkw hawkw marked this pull request as ready for review May 25, 2022 19:01
@hawkw hawkw requested a review from a team as a code owner May 25, 2022 19:01
@hawkw hawkw merged commit 09f3773 into main Jun 3, 2022
@hawkw hawkw deleted the eliza/no-disco-tests-macro branch June 3, 2022 18:05
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Jun 9, 2022
This release includes only minor internal changes and dependency
updates.

---

* build(deps): bump once_cell from 1.11.0 to 1.12.0 (linkerd/linkerd2-proxy#1701)
* build(deps): bump tj-actions/changed-files from 20.1 to 20.2 (linkerd/linkerd2-proxy#1700)
* Shellscript housekeeping (linkerd/linkerd2-proxy#1702)
* Update README to mention just and devcontainers (linkerd/linkerd2-proxy#1703)
* build(deps): bump jemallocator from 0.3.2 to 0.5.0 (linkerd/linkerd2-proxy#1708)
* build(deps): bump prost from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1710)
* build(deps): bump prost-build from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1709)
* ci: Lint markdown files (linkerd/linkerd2-proxy#1707)
* test: replace `profile_test!` macro with builder (linkerd/linkerd2-proxy#1705)
* build(deps): bump tj-actions/changed-files from 20.2 to 21 (linkerd/linkerd2-proxy#1712)
* dev: Fix the `just docker` recipe (linkerd/linkerd2-proxy#1713)
* build(deps): bump prettyplease from 0.1.10 to 0.1.11 (linkerd/linkerd2-proxy#1714)
* justfile: generate a default docker tag name (linkerd/linkerd2-proxy#1716)
* build(deps): bump tj-actions/changed-files from 21 to 22.2 (linkerd/linkerd2-proxy#1727)
* build(deps): bump petgraph from 0.6.1 to 0.6.2 (linkerd/linkerd2-proxy#1717)
* build(deps): bump clang-sys from 1.3.2 to 1.3.3 (linkerd/linkerd2-proxy#1718)
* build(deps): bump flate2 from 1.0.23 to 1.0.24 (linkerd/linkerd2-proxy#1719)
* build(deps): bump hyper from 0.14.18 to 0.14.19 (linkerd/linkerd2-proxy#1720)
* build(deps): bump miniz_oxide from 0.5.1 to 0.5.3 (linkerd/linkerd2-proxy#1722)
* build(deps): bump bumpalo from 3.9.1 to 3.10.0 (linkerd/linkerd2-proxy#1728)
* build(deps): bump async-trait from 0.1.53 to 0.1.56 (linkerd/linkerd2-proxy#1729)
* build(deps): bump parking_lot from 0.12.0 to 0.12.1 (linkerd/linkerd2-proxy#1730)
* build(deps): bump indexmap from 1.7.0 to 1.8.2 (linkerd/linkerd2-proxy#1732)
* http-box: add `EraseResponse` middleware (linkerd/linkerd2-proxy#1723)
* test: don't generate discovery tests in a macro (linkerd/linkerd2-proxy#1711)
* stack: add `ProxyService` for composing a `Proxy` with a `Service` (linkerd/linkerd2-proxy#1726)
* build(deps): bump tokio-stream from 0.1.8 to 0.1.9 (linkerd/linkerd2-proxy#1733)
* build(deps): bump tokio-macros from 1.7.0 to 1.8.0 (linkerd/linkerd2-proxy#1736)
* build(deps): bump tokio from 1.18.2 to 1.19.2 (linkerd/linkerd2-proxy#1737)
* Add 'group' labels to describe policy resources (linkerd/linkerd2-proxy#1738)
* build(deps): bump tokio-util from 0.7.2 to 0.7.3 (linkerd/linkerd2-proxy#1735)
* Move policy protobuf handling into the `server-policy` crate (linkerd/linkerd2-proxy#1739)
* build(deps): bump http from 0.2.7 to 0.2.8 (linkerd/linkerd2-proxy#1740)
* Implement `Deref` for address newtypes (linkerd/linkerd2-proxy#1741)
* Rename `Route*` to `ProfileRoute*` (linkerd/linkerd2-proxy#1742)
* Rename target types from Route to ProfileRoute (linkerd/linkerd2-proxy#1743)

Signed-off-by: Oliver Gould <[email protected]>
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Jun 9, 2022
This release includes only minor internal changes and dependency
updates.

---

* build(deps): bump once_cell from 1.11.0 to 1.12.0 (linkerd/linkerd2-proxy#1701)
* build(deps): bump tj-actions/changed-files from 20.1 to 20.2 (linkerd/linkerd2-proxy#1700)
* Shellscript housekeeping (linkerd/linkerd2-proxy#1702)
* Update README to mention just and devcontainers (linkerd/linkerd2-proxy#1703)
* build(deps): bump jemallocator from 0.3.2 to 0.5.0 (linkerd/linkerd2-proxy#1708)
* build(deps): bump prost from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1710)
* build(deps): bump prost-build from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1709)
* ci: Lint markdown files (linkerd/linkerd2-proxy#1707)
* test: replace `profile_test!` macro with builder (linkerd/linkerd2-proxy#1705)
* build(deps): bump tj-actions/changed-files from 20.2 to 21 (linkerd/linkerd2-proxy#1712)
* dev: Fix the `just docker` recipe (linkerd/linkerd2-proxy#1713)
* build(deps): bump prettyplease from 0.1.10 to 0.1.11 (linkerd/linkerd2-proxy#1714)
* justfile: generate a default docker tag name (linkerd/linkerd2-proxy#1716)
* build(deps): bump tj-actions/changed-files from 21 to 22.2 (linkerd/linkerd2-proxy#1727)
* build(deps): bump petgraph from 0.6.1 to 0.6.2 (linkerd/linkerd2-proxy#1717)
* build(deps): bump clang-sys from 1.3.2 to 1.3.3 (linkerd/linkerd2-proxy#1718)
* build(deps): bump flate2 from 1.0.23 to 1.0.24 (linkerd/linkerd2-proxy#1719)
* build(deps): bump hyper from 0.14.18 to 0.14.19 (linkerd/linkerd2-proxy#1720)
* build(deps): bump miniz_oxide from 0.5.1 to 0.5.3 (linkerd/linkerd2-proxy#1722)
* build(deps): bump bumpalo from 3.9.1 to 3.10.0 (linkerd/linkerd2-proxy#1728)
* build(deps): bump async-trait from 0.1.53 to 0.1.56 (linkerd/linkerd2-proxy#1729)
* build(deps): bump parking_lot from 0.12.0 to 0.12.1 (linkerd/linkerd2-proxy#1730)
* build(deps): bump indexmap from 1.7.0 to 1.8.2 (linkerd/linkerd2-proxy#1732)
* http-box: add `EraseResponse` middleware (linkerd/linkerd2-proxy#1723)
* test: don't generate discovery tests in a macro (linkerd/linkerd2-proxy#1711)
* stack: add `ProxyService` for composing a `Proxy` with a `Service` (linkerd/linkerd2-proxy#1726)
* build(deps): bump tokio-stream from 0.1.8 to 0.1.9 (linkerd/linkerd2-proxy#1733)
* build(deps): bump tokio-macros from 1.7.0 to 1.8.0 (linkerd/linkerd2-proxy#1736)
* build(deps): bump tokio from 1.18.2 to 1.19.2 (linkerd/linkerd2-proxy#1737)
* Add 'group' labels to describe policy resources (linkerd/linkerd2-proxy#1738)
* build(deps): bump tokio-util from 0.7.2 to 0.7.3 (linkerd/linkerd2-proxy#1735)
* Move policy protobuf handling into the `server-policy` crate (linkerd/linkerd2-proxy#1739)
* build(deps): bump http from 0.2.7 to 0.2.8 (linkerd/linkerd2-proxy#1740)
* Implement `Deref` for address newtypes (linkerd/linkerd2-proxy#1741)
* Rename `Route*` to `ProfileRoute*` (linkerd/linkerd2-proxy#1742)
* Rename target types from Route to ProfileRoute (linkerd/linkerd2-proxy#1743)

Signed-off-by: Oliver Gould <[email protected]>
zhlsunshine pushed a commit to zhlistio/linkerd2 that referenced this pull request Jun 15, 2022
This release includes only minor internal changes and dependency
updates.

---

* build(deps): bump once_cell from 1.11.0 to 1.12.0 (linkerd/linkerd2-proxy#1701)
* build(deps): bump tj-actions/changed-files from 20.1 to 20.2 (linkerd/linkerd2-proxy#1700)
* Shellscript housekeeping (linkerd/linkerd2-proxy#1702)
* Update README to mention just and devcontainers (linkerd/linkerd2-proxy#1703)
* build(deps): bump jemallocator from 0.3.2 to 0.5.0 (linkerd/linkerd2-proxy#1708)
* build(deps): bump prost from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1710)
* build(deps): bump prost-build from 0.10.3 to 0.10.4 (linkerd/linkerd2-proxy#1709)
* ci: Lint markdown files (linkerd/linkerd2-proxy#1707)
* test: replace `profile_test!` macro with builder (linkerd/linkerd2-proxy#1705)
* build(deps): bump tj-actions/changed-files from 20.2 to 21 (linkerd/linkerd2-proxy#1712)
* dev: Fix the `just docker` recipe (linkerd/linkerd2-proxy#1713)
* build(deps): bump prettyplease from 0.1.10 to 0.1.11 (linkerd/linkerd2-proxy#1714)
* justfile: generate a default docker tag name (linkerd/linkerd2-proxy#1716)
* build(deps): bump tj-actions/changed-files from 21 to 22.2 (linkerd/linkerd2-proxy#1727)
* build(deps): bump petgraph from 0.6.1 to 0.6.2 (linkerd/linkerd2-proxy#1717)
* build(deps): bump clang-sys from 1.3.2 to 1.3.3 (linkerd/linkerd2-proxy#1718)
* build(deps): bump flate2 from 1.0.23 to 1.0.24 (linkerd/linkerd2-proxy#1719)
* build(deps): bump hyper from 0.14.18 to 0.14.19 (linkerd/linkerd2-proxy#1720)
* build(deps): bump miniz_oxide from 0.5.1 to 0.5.3 (linkerd/linkerd2-proxy#1722)
* build(deps): bump bumpalo from 3.9.1 to 3.10.0 (linkerd/linkerd2-proxy#1728)
* build(deps): bump async-trait from 0.1.53 to 0.1.56 (linkerd/linkerd2-proxy#1729)
* build(deps): bump parking_lot from 0.12.0 to 0.12.1 (linkerd/linkerd2-proxy#1730)
* build(deps): bump indexmap from 1.7.0 to 1.8.2 (linkerd/linkerd2-proxy#1732)
* http-box: add `EraseResponse` middleware (linkerd/linkerd2-proxy#1723)
* test: don't generate discovery tests in a macro (linkerd/linkerd2-proxy#1711)
* stack: add `ProxyService` for composing a `Proxy` with a `Service` (linkerd/linkerd2-proxy#1726)
* build(deps): bump tokio-stream from 0.1.8 to 0.1.9 (linkerd/linkerd2-proxy#1733)
* build(deps): bump tokio-macros from 1.7.0 to 1.8.0 (linkerd/linkerd2-proxy#1736)
* build(deps): bump tokio from 1.18.2 to 1.19.2 (linkerd/linkerd2-proxy#1737)
* Add 'group' labels to describe policy resources (linkerd/linkerd2-proxy#1738)
* build(deps): bump tokio-util from 0.7.2 to 0.7.3 (linkerd/linkerd2-proxy#1735)
* Move policy protobuf handling into the `server-policy` crate (linkerd/linkerd2-proxy#1739)
* build(deps): bump http from 0.2.7 to 0.2.8 (linkerd/linkerd2-proxy#1740)
* Implement `Deref` for address newtypes (linkerd/linkerd2-proxy#1741)
* Rename `Route*` to `ProfileRoute*` (linkerd/linkerd2-proxy#1742)
* Rename target types from Route to ProfileRoute (linkerd/linkerd2-proxy#1743)

Signed-off-by: Oliver Gould <[email protected]>
Signed-off-by: zhlsunshine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants