-
Notifications
You must be signed in to change notification settings - Fork 10.2k
Description
What would you like to be added?
-
Implement the common interfaces for the e2e curl backend
- Make
tests/framework/e2e/curl.go
conform totests/framework/interfaces/interface.go
sotests/common/
suites can run with the curl backend in e2e.
- Make
-
Implement the common interfaces for the integration HTTP backend
- Provide an HTTP backend in the integration test framework that implements the same common interfaces as the existing gRPC backend.
-
Allow
tests/common/
suites to run against both gRPC and HTTP backends in integration.


Why is this needed?
As discussed in #13637 (comment), e2e provides both etcdctl and curl backends, but only etcdctl implements the common interfaces. This means tests/common/
cannot run over curl in e2e.
On the integration side, there is only a gRPC backend, so we cannot run tests over curl in tests/common/
.
Enabling the e2e curl backend through the common interfaces and adding the HTTP backend to integration will allow us to run common tests against the curl(e2e)/HTTP(integration) backend.
Goals
E2E
- Extend
tests/framework/e2e/curl.go
to implement the common interfaces intests/framework/interfaces/interface.go
.
Integration
- Introduce an HTTP backend (e.g.,
tests/framework/integration/http.go
) implementing the same common interfaces as the existing gRPC backend.
Harness
-
Allow
tests/common/
to run with:- e2e:
E2E_BACKEND=etcdctl|curl
(default:etcdctl
) - integration:
INTEGRATION_BACKEND=grpc|http
(default:grpc
)
- e2e:
After providing two backends for each test, we need to provide backend selection (via environment variables), so we can easily switch the backend.
Document
-
Write
tests/README.md
to explain e2e/integration tests as well as the common test framework.
Non-goals
- Migrating the existing e2e/integration tests to the common framework (tracked separately in Unify testing framework #13637).
- Reducing the e2e test matrix (tracked separately in Reduce the time e2e tests take #18983).