Commit faa5dffb authored by Lin Jen-Shin's avatar Lin Jen-Shin

After Trace#limit, we seek to the next line in case

of breaking ANSI sequence or Unicode
parent 7629c9ec
......@@ -30,6 +30,7 @@ module Gitlab
last_bytes = stream_size
end
stream.seek(-last_bytes, IO::SEEK_END)
stream.readline
end
def append(data, offset)
......
.
..
😺
ヾ(´༎ຶД༎ຶ`)ノ
許功蓋
......@@ -21,7 +21,7 @@ describe Gitlab::Ci::Trace::Stream do
end
end
it 'if size is larger we start from beggining' do
it 'if size is larger we start from beginning' do
stream.limit(10)
expect(stream.tell).to eq(0)
......@@ -32,6 +32,26 @@ describe Gitlab::Ci::Trace::Stream do
expect(stream.tell).to eq(6)
end
context 'when the trace contains ANSI sequence and Unicode' do
let(:stream) do
described_class.new do
File.open(expand_fixture_path('trace/ansi-sequence-and-unicode'))
end
end
it 'forwards to the next linefeed, case 1' do
stream.limit(7)
expect(stream.raw).to eq('')
end
it 'forwards to the next linefeed, case 2' do
stream.limit(29)
expect(stream.raw).to eq("\e[01;32m許功蓋\e[0m\n")
end
end
end
describe '#append' do
......
module FixtureHelpers
def fixture_file(filename)
return '' if filename.blank?
file_path = File.expand_path(Rails.root.join('spec/fixtures/', filename))
File.read(file_path)
File.read(expand_fixture_path(filename))
end
def expand_fixture_path(filename)
File.expand_path(Rails.root.join('spec/fixtures/', filename))
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment