Use force_encoding when regex contains UTF-8 char

This commit is contained in:
Shinya Maeda 2017-05-17 15:05:18 +09:00
parent b9950c22b3
commit a6f6056c62
2 changed files with 4 additions and 4 deletions

View file

@ -74,7 +74,7 @@ module Gitlab
match = ""
reverse_line do |line|
matches = line.scan(regex)
matches = line.force_encoding(Encoding.default_external).scan(regex)
next unless matches.is_a?(Array)
next if matches.empty?

View file

@ -266,14 +266,14 @@ describe Gitlab::Ci::Trace::Stream do
end
context 'when regex is multi-byte char' do
let(:data) { 'ゴッドファット\n' }
let(:regex) { 'ゴッドファット' }
let(:data) { '95.0 ゴッドファット\n' }
let(:regex) { '\d+\.\d+ ゴッドファット' }
before do
stub_const('Gitlab::Ci::Trace::Stream::BUFFER_SIZE', 5)
end
it { is_expected.to be_nil }
it { is_expected.to eq('95.0') }
end
context 'when BUFFER_SIZE is equal to stream.size' do