Some class Sock tests were previously disabled because Windows lacks socketpair(2) which is used as a helper function in the socket tests, but is not strictly necessary or related to the Socket class under testing. This PR adds a CreateSocketPair() helper which creates a sender socket and receiver socket with a TCP connection, enabling these test cases for Windows. This also enables future tests that require more granular control over sockets than what socketpair() allows for, like using setsockopt() before connecting a socket.
This change is generally an improvement, but is also broken out of a branch that does compact block prefilling up to the available bytes in the connection’s current TCP window (see delving post). Creating connected socket pairs is useful for added tests in that branch that validate querying the current TCP window state, and without this change those tests don’t run on Windows.