fluent-plugin-relp 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5aeae38a01e9a95232008ca942fda65afbd0d61c
4
- data.tar.gz: 25ec2e89a2e32111e6162f3f8dad4153632f6456
3
+ metadata.gz: 711e00d74e6cf7a3200f74c1db591615ad1e0236
4
+ data.tar.gz: 5d45637c236d0d17fd4e55eb56804c8f5853ff05
5
5
  SHA512:
6
- metadata.gz: e20bc9892a4d26e8f33c3fc62a2bb7ccca1a628a7d3c7340cce8459635587fea74076de42c9fd132994646b72da42a3ef633f77eb3757ac482bb4408c4cb08e4
7
- data.tar.gz: a5c3163caebbc1afa48837345f756c6b4fa000e93a96f82bd73150a0f3e44eba31aa17367786a26143b2968682f5e28850953cda3b6947d69551517c662db2c5
6
+ metadata.gz: 827c54e2d733a12a7944b6191db5995fa837596aaec749d4f872b2d1f5bee6e0a7315bd7608b77f05c79242e97345e803394f0c267bd956dfeef6afa7ed53991
7
+ data.tar.gz: 81381f721970d0e48ba7be4e639033bee1b2b51e7b36798c0832e2166357e6dccd2f253715b7ce23890ab87ddb50366d81a0ad0d4f359fa00bcd9cbaccde2cfe
data/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.3] - 2017-07-11
11
+ ### Added
12
+ - unit tests suite
13
+ - dependencies needed for tests
14
+
10
15
  ## [0.1.2] - 2017-06-27
11
16
  ### Added
12
17
  - Started writing this changelog
data/README.md CHANGED
@@ -18,6 +18,8 @@ Or install it yourself as:
18
18
 
19
19
  just note that you will probably need ruby development libraries installed to do this.
20
20
 
21
+ You can also install through `bundler` and use `rake test` to run unit tests for plugin.
22
+
21
23
  ## Usage
22
24
 
23
25
  To use the plugin just add tou your fluent.conf file:
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+ Rake::TestTask.new(:test) do |test|
4
+ test.libs << 'lib' << 'test'
5
+ test.pattern = 'test/**/test_*.rb'
6
+ test.verbose = true
7
+ end
8
+
9
+ task :default => :test
10
+
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |gem|
3
3
  gem.name = 'fluent-plugin-relp'
4
- gem.version = '0.1.2'
4
+ gem.version = '0.1.3'
5
5
  gem.author = "Jiří Vymazal"
6
6
  gem.email = ['jvymazal@redhat.com']
7
7
  gem.summary = "Fluent plugin to receive messages via RELP"
@@ -16,6 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.required_ruby_version = '>= 2.0.0'
17
17
 
18
18
  gem.add_development_dependency 'rake', '~> 0'
19
+ gem.add_development_dependency 'test-unit', '~> 3.1'
19
20
  gem.add_runtime_dependency 'fluentd', '~> 0.12.0'
20
21
  gem.add_runtime_dependency 'relp', '~> 0.1'
21
22
  end
@@ -17,6 +17,7 @@ module Fluent
17
17
  end
18
18
 
19
19
  def start
20
+ super
20
21
  @server = Relp::RelpServer.new(@bind, @port, log, method(:on_message))
21
22
  @thread = Thread.new(&method(:run))
22
23
  end
data/test/helper.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/setup'
2
+ require 'test/unit'
3
+
4
+ $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
5
+ $LOAD_PATH.unshift(__dir__)
6
+ require 'fluent/test'
@@ -0,0 +1,102 @@
1
+ require 'helper'
2
+ require 'fluent/plugin/in_relp'
3
+
4
+ class RelpServerFake
5
+ def initialize(callback)
6
+ @callback = callback
7
+ end
8
+
9
+ def run
10
+ @run_invoked = true
11
+ end
12
+ attr_reader :run_invoked
13
+
14
+ def send(msg)
15
+ @callback.call(msg)
16
+ end
17
+
18
+ def server_shutdown
19
+ @shut_down = true
20
+ end
21
+ attr_reader :shut_down
22
+ end
23
+
24
+ class JoinException < RuntimeError
25
+ end
26
+
27
+ class RelpInputTest < Test::Unit::TestCase
28
+ def setup
29
+ Fluent::Test.setup
30
+ end
31
+
32
+ CONFIG = %[
33
+ bind HOST
34
+ port 1111
35
+ tag input.relp
36
+ ]
37
+
38
+ def create_driver(conf = CONFIG)
39
+ Fluent::Test::InputTestDriver.new(Fluent::RelpInput).configure(conf)
40
+ end
41
+
42
+ sub_test_case "config" do
43
+ def test_empty
44
+ assert_raise(Fluent::ConfigError) {
45
+ create_driver('')
46
+ }
47
+ end
48
+
49
+ def test_configure
50
+ d = create_driver
51
+ assert_equal 'HOST', d.instance.bind
52
+ assert_equal 1111, d.instance.port
53
+ assert_equal 'input.relp', d.instance.tag
54
+ end
55
+ end
56
+
57
+ sub_test_case "function" do
58
+ def test_run_invalid
59
+ d = create_driver
60
+ assert_raise(SocketError) { #will fail because of invalid bind
61
+ d.run
62
+ }
63
+ end
64
+
65
+ def test_run
66
+ d = create_driver
67
+ server = RelpServerFake.new(d.instance.method(:on_message))
68
+ d.instance.instance_variable_set(:@server, server)
69
+ d.instance.run
70
+ assert_equal true, server.run_invoked
71
+ end
72
+
73
+ def test_message
74
+ d = create_driver
75
+ server = RelpServerFake.new(d.instance.method(:on_message))
76
+ assert_raise(SocketError) { #will fail because of invalid bind
77
+ d.run
78
+ }
79
+ d.instance.instance_variable_set(:@server, server)
80
+ d.instance.run
81
+ message = 'testLog'
82
+ server.send(message)
83
+ assert_equal true, d.emit_streams.count > 0
84
+ assert_equal d.emit_streams[0][0], 'input.relp' #[0][0] indicates tag of first accepted message
85
+ assert_equal d.emit_streams[0][1][0][1]["message"], message #this is how you access first accepted record... blame fluentd test framework
86
+ end
87
+ end
88
+
89
+ sub_test_case "cleanup" do
90
+ def test_shutdown
91
+ d = create_driver
92
+ server = RelpServerFake.new(d.instance.method(:on_message))
93
+ d.instance.instance_variable_set(:@server, server)
94
+ plugin_thread = Thread.new { raise JoinException }
95
+ d.instance.instance_variable_set(:@thread, plugin_thread)
96
+ assert_raise(JoinException) {
97
+ d.instance.shutdown
98
+ }
99
+ assert_equal true, server.shut_down
100
+ end
101
+ end
102
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-relp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jiří Vymazal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-27 00:00:00.000000000 Z
11
+ date: 2017-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: test-unit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: fluentd
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -63,8 +77,11 @@ files:
63
77
  - Gemfile
64
78
  - LICENSE.txt
65
79
  - README.md
80
+ - Rakefile
66
81
  - fluent-plugin-relp.gemspec
67
82
  - lib/fluent/plugin/in_relp.rb
83
+ - test/helper.rb
84
+ - test/plugin/test_in_relp.rb
68
85
  homepage: https://github.com/ViaQ/fluent-plugin-relp
69
86
  licenses:
70
87
  - MIT
@@ -89,4 +106,6 @@ rubygems_version: 2.5.2
89
106
  signing_key:
90
107
  specification_version: 4
91
108
  summary: Fluent plugin to receive messages via RELP
92
- test_files: []
109
+ test_files:
110
+ - test/helper.rb
111
+ - test/plugin/test_in_relp.rb