chore(tests) replace ncat with test server #2510
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
So far we were using netcat as our "HTTP server", but this has caused several problems with testing.
Sometimes netcat was randomly failing. One time we forgot to add content-length header to the response etc, etc.
In the end, we figured out that we should use real HTTP server that has valid RFC implementation that supports connection pooling etc.
Some time ago, @lobkovilya introduced Test Server that is just Go application that uses HTTP server.
This PR replaces all usages of ncat as a test server.
It's already hard enough to get stable E2E tests, so this PR eliminates one of the problems.
I implemented Test Server on K8S as Deployment. I would love to do the same for Universal but it requires further refactor.
Note that netcat is still used for DemoClient but it's not really used, since all the requets are made by sshing into the pod/VM and execute curls.
Documentation
Testing
Backwards compatibility
backport-to-stable
label if the code is backwards compatible. Otherwise, list breaking changes.