Make sure @stream.each_line would tag Encoding.default_external
This commit is contained in:
parent
ee3b0c3a9a
commit
c26b126502
2 changed files with 16 additions and 4 deletions
|
@ -15,6 +15,8 @@ module Gitlab
|
|||
def initialize
|
||||
@stream = yield
|
||||
@stream.binmode
|
||||
# Ci::Ansi2html::Converter would read from @stream directly
|
||||
@stream.set_encoding(Encoding.default_external)
|
||||
end
|
||||
|
||||
def valid?
|
||||
|
|
|
@ -34,11 +34,11 @@ describe Gitlab::Ci::Trace::Stream do
|
|||
end
|
||||
|
||||
context 'when the trace contains ANSI sequence and Unicode' do
|
||||
let(:stream) do
|
||||
described_class.new do
|
||||
let(:io) do
|
||||
File.open(expand_fixture_path('trace/ansi-sequence-and-unicode'))
|
||||
end
|
||||
end
|
||||
|
||||
let(:stream) { described_class.new { io } }
|
||||
|
||||
it 'forwards to the next linefeed, case 1' do
|
||||
stream.limit(7)
|
||||
|
@ -57,6 +57,16 @@ describe Gitlab::Ci::Trace::Stream do
|
|||
expect(result).to eq("\e[01;32m許功蓋\e[0m\n")
|
||||
expect(result.encoding).to eq(Encoding.default_external)
|
||||
end
|
||||
|
||||
# See https://gitlab.com/gitlab-org/gitlab-ce/issues/30796
|
||||
it 'reads in binary, output as Encoding.default_external' do
|
||||
stream.limit(29)
|
||||
|
||||
result = io.read # Ci::Ansi2html::Converter would read with each_line
|
||||
|
||||
expect(result).to eq("\e[01;32m許功蓋\e[0m\n")
|
||||
expect(result.encoding).to eq(Encoding.default_external)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue