mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-14 02:07:07 +02:00
64 lines
2.0 KiB
Ruby
64 lines
2.0 KiB
Ruby
require "test_helper"
|
|
|
|
class FileReverseReaderTest < ActiveSupport::TestCase
|
|
sub_test_case "#each_line" do
|
|
data(
|
|
"small file" => File.size(fixture_path("error0.log")),
|
|
"large file" => 2,
|
|
)
|
|
test "read at once" do |step|
|
|
io = File.open(fixture_path("error0.log"))
|
|
reader = FileReverseReader.new(io, step)
|
|
subject = reader.enum_for(:each_line)
|
|
File.open(fixture_path("error0.log"), "r") do |file|
|
|
assert_equal(file.each_line.count, subject.count)
|
|
end
|
|
File.open(fixture_path("error0.log"), "r") do |file|
|
|
assert_equal(file.each_line.to_a.map(&:strip).reverse, subject.to_a)
|
|
end
|
|
io.close
|
|
end
|
|
end
|
|
|
|
data("contain ascii only" => ["ABCDE", false],
|
|
"contain non-ascii" => ["\x89NG", true])
|
|
test "#binary_file?" do |(content, is_binary)|
|
|
File.open(Rails.root + "tmp/log.log", "wb") do |file|
|
|
file.write(content)
|
|
end
|
|
File.open(Rails.root + "tmp/log.log") do |io|
|
|
reader = FileReverseReader.new(io)
|
|
assert_equal(is_binary, reader.binary_file?)
|
|
end
|
|
end
|
|
|
|
sub_test_case "#tail" do
|
|
data("2" => [2, "foo\n" * 2],
|
|
"50" => [50, "foo\n" * 50],
|
|
"over log lines" => [100, "foo\n" * 200])
|
|
test "count" do |(count, content)|
|
|
logfile = Rails.root + "tmp/log.log"
|
|
File.open(logfile, "wb") do |file|
|
|
file.write(content)
|
|
end
|
|
File.open(logfile, "r") do |io|
|
|
reader = FileReverseReader.new(io)
|
|
assert_equal(count, reader.tail(count).to_a.size)
|
|
end
|
|
end
|
|
|
|
data("compatible with utf-8" => ["utf8あいう\n", ["utf8あいう"]],
|
|
"incompatible with utf-8" => ["eucあいう\n".encode('euc-jp'), []])
|
|
test "non-ascii encoding" do |(content, expected)|
|
|
logfile = Rails.root + "tmp/log.log"
|
|
File.open(logfile, "wb") do |file|
|
|
file.write(content)
|
|
end
|
|
File.open(logfile, "r") do |io|
|
|
reader = FileReverseReader.new(io)
|
|
assert_equal(expected, reader.tail)
|
|
end
|
|
end
|
|
end
|
|
end
|