@Test
  public void capturesBothWhileProcessIsAlive() throws Exception {
    // arrange
    givenStartedProcessWithStreamListeners(ProcessPrintsToBoth.class);

    // act
    waitUntilProcessStops();

    // assert
    assertThatProcessAndReadersStopped();
    assertThatStdOutContainsExactly(ProcessPrintsToBoth.STDOUT);
    assertThatStdErrContainsExactly(ProcessPrintsToBoth.STDERR);
  }
This test hangs on Windows if the implementation is blocking instead of non-blocking. Geode
will always use the non-blocking implementation on Windows. If someone accidentally changes
this, then the probably the first thing you'll notice is this test hanging.
geode-core/src/integrationTest/java/org/apache/geode/internal/process/NonBlockingProcessStreamReaderIntegrationTest.java