Support windows in conformance runner - #29524
Open
anuraaga wants to merge 1 commit into
Open
Conversation
anuraaga
commented
Aug 31, 2026
| // 3. testee sends 4-byte length M (little endian) | ||
| // 4. testee sends M bytes representing a ConformanceResponse proto | ||
|
|
||
| #include <signal.h> |
Contributor
Author
There was a problem hiding this comment.
These headers weren't used, presumably predating extraction of fork_pipe_runner
| size_t ofs = 0; | ||
| while (len > 0) { | ||
| std::future<ssize_t> future = std::async( | ||
| std::future<int> future = std::async( |
Contributor
Author
There was a problem hiding this comment.
The only edits to existing code is changing ssize_t to int which is cross-platform. It matches protoc's existing approach such as in zero_copy_stream_impl.cc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
It would be good to be able to run conformance tests on Windows to have full coverage for them. Because we can convert pipes to standard file descriptors, the actual conformance logic needs no significant change and this just wires windows versions of starting / stopping processes. It is adapted from what subprocess.cc does, similar to the existing
SpawnTestProgramalso reproducing subprocess.cc start logic to have control for bidi streaming.I realize the note in Portability says to get in touch about a strategy, but since this seems fairly uninvasive, hope this PR can be the mechanism for that.
I have verified e2e in https://github.com/bufbuild/protobuf-py/actions/runs/33296367633/job/99363658469?pr=80 - the build is intentionally red to make it obvious the conformance runner is executing, and finding failures on Windows (this branch doesn't have updates for v36 yet).