summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <gitlab.shinyamaeda@gmail.com>2017-05-17 15:05:18 +0900
committerShinya Maeda <gitlab.shinyamaeda@gmail.com>2017-05-24 20:10:14 +0900
commita6f6056c62693f18d9a2da570578b2e19aa20afe (patch)
treecdf3014611990a7b1d71526392afa05097647015
parentb9950c22b38456537af92c77210f1b837bdc914c (diff)
downloadgitlab-ce-a6f6056c62693f18d9a2da570578b2e19aa20afe.tar.gz
Use force_encoding when regex contains UTF-8 char
-rw-r--r--lib/gitlab/ci/trace/stream.rb2
-rw-r--r--spec/lib/gitlab/ci/trace/stream_spec.rb6
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/gitlab/ci/trace/stream.rb b/lib/gitlab/ci/trace/stream.rb
index 56d6855c3c6..233cc5c1c7a 100644
--- a/lib/gitlab/ci/trace/stream.rb
+++ b/lib/gitlab/ci/trace/stream.rb
@@ -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?
diff --git a/spec/lib/gitlab/ci/trace/stream_spec.rb b/spec/lib/gitlab/ci/trace/stream_spec.rb
index b4fdfd06daf..bbb3f9912a3 100644
--- a/spec/lib/gitlab/ci/trace/stream_spec.rb
+++ b/spec/lib/gitlab/ci/trace/stream_spec.rb
@@ -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