rspec/rspec-expectations — pull request #700 by alexgenco (2014-12-21 23:48:54+00:00)
Title: Allow output matcher to capture output of a child process

The output matcher doesn't capture the output of spawned child processes even if they share standard streams with the parent process. I noticed the issue when the following test wouldn't pass:

```ruby
expect {
Process.waitpid(spawn("echo foo"))
}.to output("foo").to_stdout
```

This solution uses a `Tempfile` instead of a `StringIO` so it can be inherited by child processes.

I haven't looked too deeply into it, but it may also be the start of a solution to https://github.com/rspec/rspec-expectations/issues/642 since ostensibly tempfile name generation is thread-safe.

Also note that this requires changes to `StdErrSplitter` in rspec-support, which I will PR in a minute.