enhance router_check_tool to allow going through listeners as well
- 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
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