Make tests work in IPv6-only environments which require port picking #108
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.
Our CI environment intentionally does not offer IPv4 and does not
guarantee that all port numbers are available.
To make the tests work, I:
Replaced the IPv4 address 127.0.0.1 with the DNS name localhost,
which resolves to either address family depending on availability.
Replaced string concatenation of addresses and ports with using
net.JoinHostPort(), which also works for IPv6 addresses,
such as the ::1 address that httptest will use in IPv6-only envs.
Replaced all port numbers with port 0, which will make the OS
pick an available port automatically (in listen addresses).
This also allows for running multiple instances of the tests.