Skip to content

Enable curl e2e backend via common interfaces and add HTTP backend to integration #20658

@yagikota

Description

@yagikota

What would you like to be added?

  • Implement the common interfaces for the e2e curl backend

    • Make tests/framework/e2e/curl.go conform to tests/framework/interfaces/interface.go so tests/common/ suites can run with the curl backend in e2e.
  • 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.

Image Image

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 in tests/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)

After providing two backends for each test, we need to provide backend selection (via environment variables), so we can easily switch the backend.

Document

Non-goals

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions