*: Added End-to End Style Test Coverage for LRS Scenarios in xDS Client #7953
Mergeable / Mergeable
failed
Dec 21, 2024 in 1s
3/3 Fail(s): LABEL, DESCRIPTION, MILESTONE
Status: FAIL
Here are some stats of the run:
3 validations were ran.
0 PASSED
3 FAILED
Details
❌ Validator: LABEL
- ❌ label does not include "^Type:"
Input :
Settings :{"must_include":{"regex":"^Type:"}}
❌ Validator: DESCRIPTION
- ❌ description does not include "^RELEASE NOTES:\s([Nn][Oo][Nn][Ee]|[Nn]/[Aa]|\n(*|-)\s.+)$"**
Input : Addresses #7704
This pull request adds test coverage for Load Reporting Service (LRS) scenarios within the xdsclient
package. The tests address various cases, such as stream failures, backoff mechanisms, and resource request handling when streams are unavailable.
Release Notes:
Potential Pitfalls
-
Not Exclusively for LRS Messages:
- The tests currently use
version.V3ListenerURL
for listener resources. While functional, this generalization doesn't strictly isolate LRS-specific cases. Future refinement could focus explicitly onload-report
resources.
- The tests currently use
-
Unimplemented Watcher (
newListenerWatcher
):- Some tests rely on a placeholder implementation for
xdsresource.WatchListener
due to the absence of a dedicated LRS watcher. This workaround aligns with existing test patterns but might need better abstraction for LRS-specific functionality.
- Some tests rely on a placeholder implementation for
-
Error Handling and Edge Cases:
- The tests simulate various failure scenarios, but additional validation is necessary to ensure exhaustive edge case coverage.
-
Overhead of Repeated Backoff:
- Current tests use controlled backoff via channels to reduce runtime. This approach might need further optimization for more extensive test runs.
Request for Feedback
-
Suggestions for refining the
WatchListener
implementation or introducing an LRS-specific watcher. -
Recommendations for isolating
load-report
cases from general listener tests. -
Feedback on error simulation and handling mechanisms.
Settings : ```{"must_include":{"regex":"^RELEASE NOTES:\\s*([Nn][Oo][Nn][Ee]|[Nn]/[Aa]|\\n(\\*|-)\\s*.+)$","regex_flag":"m"}}```
❌ Validator: MILESTONE
- ❌ milestone does not include "Release$"
Input :
Settings :{"must_include":{"regex":"Release$"}}
Loading