fluent-plugin-relp 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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