class Fluent::Test::BufferedOutputTestDriver
def emit(record, time=Engine.now)
def emit(record, time=Engine.now) @entries << [time, record] self end
def expect_format(str)
def expect_format(str) (@expected_buffer ||= '') << str end
def initialize(klass, tag='test', &block)
def initialize(klass, tag='test', &block) super(klass, &block) @entries = [] @expected_buffer = nil @tag = tag def @instance.buffer @buffer end end
def run(num_waits = 10, &block)
def run(num_waits = 10, &block) result = nil super(num_waits) { block.call if block es = ArrayEventStream.new(@entries) buffer = @instance.format_stream(@tag, es) if @expected_buffer assert_equal(@expected_buffer, buffer) end chunk = if @instance.instance_eval{ @chunk_key_tag } @instance.buffer.generate_chunk(@instance.metadata(@tag, nil, nil)).staged! else @instance.buffer.generate_chunk(@instance.metadata(nil, nil, nil)).staged! end chunk.concat(buffer, es.size) begin result = @instance.write(chunk) ensure chunk.purge end } result end