envoyproxy / envoyproxy/envoy

enhance router_check_tool to allow going through listeners as well

Open
#12,393 7 comments 0 reactions 0 assignees View on GitHub
area/route_check_tool help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

Currently, `router_check_tool` takes in a route as input. This makes the tool somewhat whitebox - the user first needs to figure out which route they care about, then they can write a test for it. Ideally, its completely black box - the user gives the full Envoy config (really just Listeners and Routes) and a set of queries, and checks the result.

This is useful as well to test complex listeners with many different filter chain matches.

Alternatives considered:
* Implement the logic for determining a route from the request ourselves. This would involve re-implementing the filter chain/listener matching logic which is likely to be incorrect and fall out of sync
* Use the tool as is. This doesn't mean the requirement of black box testing, relies test writers to know Envoy implementation details
* Send real traffic against a real envoy instead. This is slower and more complex

Contributor guide

Open the contributing guide

Research direction

Start by locating router_check_tool and reading how it currently accepts a route and queries its result. Trace the existing listener, filter-chain, and route representations without duplicating matching logic. Done means the tool accepts Envoy listeners and routes with queries and evaluates results through listener matching.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.