BigW Consortium Gitlab

Commit e9d8fc94 by Lin Jen-Shin

Make sure TraceReader uses Encoding.default_external

Encoding.default_external was chosen over Encoding.default_internal because File.read is returning Encoding.default_external, therefore we should align with it. Alternatively, we could force both of them to be Encoding.default_internal. However, ideally this should be determined by different projects. For example, some projects might want to use an encoding different to what GitLab is using. This might not happen soon though. Closes #27052
parent 37b45031
......@@ -42,6 +42,7 @@ module Gitlab
end
chunks.join.lines.last(max_lines).join
.force_encoding(Encoding.default_external)
end
end
end
......
......@@ -11,13 +11,25 @@ describe Gitlab::Ci::TraceReader do
last_lines = random_lines
expected = lines.last(last_lines).join
result = subject.read(last_lines: last_lines)
expect(subject.read(last_lines: last_lines)).to eq(expected)
expect(result).to eq(expected)
expect(result.encoding).to eq(Encoding.default_external)
end
end
it 'returns everything if trying to get too many lines' do
expect(build_subject.read(last_lines: lines.size * 2)).to eq(lines.join)
result = build_subject.read(last_lines: lines.size * 2)
expect(result).to eq(lines.join)
expect(result.encoding).to eq(Encoding.default_external)
end
it 'returns all contents if last_lines is not specified' do
result = build_subject.read
expect(result).to eq(lines.join)
expect(result.encoding).to eq(Encoding.default_external)
end
it 'raises an error if not passing an integer for last_lines' do
......
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