Support ephemeral ports in dev server and allow cURL tests to parallelize #6132
+100
−46
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.
Attempting to listen on port 0 instructs the kernel to select an unused port to listen on, which we can then query back out to userspace.
The CLI dev server already has most of the machinery to do this, we just need to allow specifying port zero (or assuming port zero if no port is present). The first commit in this stack does that.
The second commit in this stack updates ext/curl/tests/server.inc to parse the listening port out of the log statements so that we can run all curl tests in parallel with each other (and any other phpt).