Sha256: 79d02a367f146e5c797f8b1551ddc91c71546933b5521f00bb305a4901d9a810

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require_relative 'helper'
require 'fluent/test'
require 'fluent/plugin/out_named_pipe'

Fluent::Test.setup

class NamedPipeOutputTest < Test::Unit::TestCase
  TEST_PATH = "out_named_pipe"

  setup do
    @tag = 'foo.bar'
  end

  teardown do
    File.unlink(TEST_PATH) rescue nil
  end

  def create_driver(conf)
    Fluent::Test::OutputTestDriver.new(Fluent::NamedPipeOutput, @tag).configure(conf)
  end

  sub_test_case 'configure' do
    test 'required parameter' do
      assert_raise_message("'path' parameter is required") do
        create_driver('')
      end

      d = create_driver(%[path #{TEST_PATH}])
      assert_equal TEST_PATH, d.instance.path
    end

    test 'option parameter' do
      config = %[
        path #{TEST_PATH}
      ]
      d = create_driver(config + %[format ltsv])
      assert_equal TEST_PATH, d.instance.path
    end
  end

  sub_test_case 'write' do
    CONFIG = %[
      path #{TEST_PATH}
      format ltsv
    ]
    
    test 'reader is waiting' do
      readline = nil
      thread = Thread.new {
        pipe = ::Fluent::PluginNamedPipe::Fifo.new(TEST_PATH, :r)
        readline = pipe.readline
      }

      d = create_driver(CONFIG)
      d.run do
        d.emit({'foo' => 'bar'})
      end

      thread.join
      assert_equal "foo:bar\n", readline
    end

    test 'reader is not waiting' do
      d = create_driver(CONFIG)
      assert_nothing_raised do
        d.emit({'foo' => 'bar'})
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-named_pipe-0.2.0 test/test_out_named_pipe.rb