diff --git a/lib/rspec/support/spec/in_sub_process.rb b/lib/rspec/support/spec/in_sub_process.rb index 2f5025ec..602e9fe8 100644 --- a/lib/rspec/support/spec/in_sub_process.rb +++ b/lib/rspec/support/spec/in_sub_process.rb @@ -11,6 +11,10 @@ def in_sub_process(prevent_warnings=true) # rubocop:disable Metrics/MethodLength exception_reader, exception_writer = IO.pipe result_reader, result_writer = IO.pipe + # Set binary mode to avoid errors surrounding ascii-8bit to utf-8 conversion + # this happens with warnings on rspec-rails for example + [exception_reader, exception_writer, result_reader, result_writer].each { |io| io.binmode } + pid = Process.fork do warning_preventer = $stderr = RSpec::Support::StdErrSplitter.new($stderr)