diff --git a/lib/rspec/support/source.rb b/lib/rspec/support/source.rb index b9e07cdda..dcf81f760 100644 --- a/lib/rspec/support/source.rb +++ b/lib/rspec/support/source.rb @@ -9,7 +9,11 @@ class Source attr_reader :source, :path def self.from_file(path) - source = File.read(path) + # We must use `binread` here, there is no spec for this behaviour + # as its proven troublesome to replicate within our spec suite, but + # to manually verify run: + # `bundle exec rspec spec/support/source_broken_example` + source = File.binread(path) new(source, path) end diff --git a/spec/support/source_broken_example b/spec/support/source_broken_example new file mode 100644 index 000000000..87568a6bc --- /dev/null +++ b/spec/support/source_broken_example @@ -0,0 +1,8 @@ +Encoding.default_internal = Encoding::BINARY + +describe UndeclaredModule do + # the missing constant can be anything + it 'crashes and does not even parse this' do + 'привет' + end +end