class Fluent::Test::Driver::MultiOutput

def flush

def flush
  @instance.outputs.each{|o| o.force_flush }
end

def initialize(klass, opts: {}, &block)

def initialize(klass, opts: {}, &block)
  super
  raise ArgumentError, "plugin is not an instance of Fluent::Plugin::MultiOutput" unless @instance.is_a? Fluent::Plugin::MultiOutput
  @flush_buffer_at_cleanup = nil
end

def run(flush: true, **kwargs, &block)

def run(flush: true, **kwargs, &block)
  @flush_buffer_at_cleanup = flush
  super(**kwargs, &block)
end

def run_actual(**kwargs, &block)

def run_actual(**kwargs, &block)
  val = super(**kwargs, &block)
  if @flush_buffer_at_cleanup
    @instance.outputs.each{|o| o.force_flush }
  end
  val
end