fluent-plugin-serialport 0.14.1 → 1.0.0
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 +5 -5
- data/fluent-plugin-serialport.gemspec +3 -2
- data/lib/fluent/plugin/in_serialport.rb +8 -9
- data/test/plugin/test_in_serialport.rb +79 -1
- data/test/test_helper.rb +5 -0
- metadata +32 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 79c6ad8fab882773e0043b7f87acf24422f3074b172bc65eb87b0c038d133394
|
4
|
+
data.tar.gz: 78d5b0e63d078151bec22d061c8b80bfd378fae304b37a8cad7cdef3c6c49772
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6db9dcf07c6264a36de437df35d241718fce3ae703c0251e965fa37dfba2bccedda478885e77c25b039640373ca99a2ac648d3de524650dc0cb6868e1a16663
|
7
|
+
data.tar.gz: 6f2c31fb35d41d16e093fffe43e2bdf6499c723028a01fd9a8114104d9688e42803b74fe513174116c2e6c080f0d2d52fe8176bc2457be8bf0ddfea95989829f
|
@@ -3,14 +3,13 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "fluent-plugin-serialport"
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "1.0.0"
|
7
7
|
s.authors = ["MATSUMOTO Katsuyoshi"]
|
8
8
|
s.email = ["github@katsyoshi.org"]
|
9
9
|
s.homepage = "https://github.com/katsyoshi/fluent-plugin-serialport"
|
10
10
|
s.summary = "fluentd plugin for serial port"
|
11
11
|
s.description = "fluentd plugin for serial port"
|
12
12
|
s.license = "Apache License, Version 2.0"
|
13
|
-
s.has_rdoc = false
|
14
13
|
|
15
14
|
s.files = `git ls-files`.split("\n")
|
16
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -21,5 +20,7 @@ Gem::Specification.new do |s|
|
|
21
20
|
s.add_dependency "serialport"
|
22
21
|
s.add_development_dependency "simplecov"
|
23
22
|
s.add_development_dependency "test-unit"
|
23
|
+
s.add_development_dependency "test-unit-rr"
|
24
|
+
s.add_development_dependency "timecop"
|
24
25
|
s.add_development_dependency "rake"
|
25
26
|
end
|
@@ -31,15 +31,14 @@ class SerialPortInput < Fluent::Plugin::Input
|
|
31
31
|
|
32
32
|
def run
|
33
33
|
loop do
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
34
|
+
break if @serial.closed?
|
35
|
+
begin
|
36
|
+
timenow = @include_time ? Time.now.to_s << ' ' : ''
|
37
|
+
data = {@device => timenow << @serial.readline(@eol)}
|
38
|
+
router.emit(@tag, Fluent::EventTime.now, data)
|
39
|
+
rescue => ex
|
40
|
+
log.warn(error: ex) unless stopped?
|
41
|
+
break
|
43
42
|
end
|
44
43
|
end
|
45
44
|
end
|
@@ -3,10 +3,16 @@ require 'test_helper'
|
|
3
3
|
class SerialPortInputTest < Test::Unit::TestCase
|
4
4
|
def setup
|
5
5
|
Fluent::Test.setup
|
6
|
+
@now = event_time("2018-06-04 11:57:00 +0900")
|
7
|
+
Timecop.freeze(Time.parse("2018-06-04 11:57:00 +0900"))
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
Timecop.return
|
6
12
|
end
|
7
13
|
|
8
14
|
CONFIG = %[
|
9
|
-
type serial_input
|
15
|
+
@type serial_input
|
10
16
|
com_port serialport
|
11
17
|
baud_rate 9600
|
12
18
|
tag serialport
|
@@ -23,4 +29,76 @@ class SerialPortInputTest < Test::Unit::TestCase
|
|
23
29
|
assert_equal 9600, d.instance.baud_rate
|
24
30
|
assert_equal 'serialport', d.instance.tag
|
25
31
|
end
|
32
|
+
|
33
|
+
sub_test_case("serial port") do
|
34
|
+
test "one line" do
|
35
|
+
mock(SerialPort).new("serialport", 9600, 8, 1, SerialPort::NONE) do
|
36
|
+
s = mock(Object.new)
|
37
|
+
n = 0
|
38
|
+
s.closed?.times(2) do
|
39
|
+
n += 1
|
40
|
+
n > 1
|
41
|
+
end
|
42
|
+
s.readline($/) { "This is a test\n" }
|
43
|
+
s.close
|
44
|
+
s
|
45
|
+
end
|
46
|
+
d = create_driver
|
47
|
+
d.run(expect_emits: 1)
|
48
|
+
events = d.events
|
49
|
+
assert_equal(1, events.size)
|
50
|
+
assert_equal(["serialport", @now, { "serialport" => "This is a test\n" }], events.first)
|
51
|
+
end
|
52
|
+
|
53
|
+
test "3 lines" do
|
54
|
+
mock(SerialPort).new("serialport", 9600, 8, 1, SerialPort::NONE) do
|
55
|
+
s = mock(Object.new)
|
56
|
+
n = 0
|
57
|
+
s.closed?.times(4) do
|
58
|
+
n += 1
|
59
|
+
n > 3
|
60
|
+
end
|
61
|
+
line = 0
|
62
|
+
s.readline($/).times(3) do
|
63
|
+
line += 1
|
64
|
+
"This is a test #{line}\n"
|
65
|
+
end
|
66
|
+
s.close
|
67
|
+
s
|
68
|
+
end
|
69
|
+
d = create_driver
|
70
|
+
d.run(expect_emits: 3)
|
71
|
+
events = d.events
|
72
|
+
assert_equal(3, events.size)
|
73
|
+
expected = [
|
74
|
+
["serialport", @now, { "serialport" => "This is a test 1\n" }],
|
75
|
+
["serialport", @now, { "serialport" => "This is a test 2\n" }],
|
76
|
+
["serialport", @now, { "serialport" => "This is a test 3\n" }],
|
77
|
+
]
|
78
|
+
assert_equal(expected, events)
|
79
|
+
end
|
80
|
+
|
81
|
+
test "raise and break" do
|
82
|
+
mock(SerialPort).new("serialport", 9600, 8, 1, SerialPort::NONE) do
|
83
|
+
s = mock(Object.new)
|
84
|
+
s.closed?.at_least(2) { false }
|
85
|
+
n = 0
|
86
|
+
s.readline($/).times(2) do
|
87
|
+
if n == 0
|
88
|
+
n += 1
|
89
|
+
"This is a test\n"
|
90
|
+
else
|
91
|
+
raise
|
92
|
+
end
|
93
|
+
end
|
94
|
+
s.close
|
95
|
+
s
|
96
|
+
end
|
97
|
+
d = create_driver
|
98
|
+
d.run(expect_emits: 1)
|
99
|
+
events = d.events
|
100
|
+
assert_equal(1, events.size)
|
101
|
+
assert_equal(["serialport", @now, { "serialport" => "This is a test\n" }], events.first)
|
102
|
+
end
|
103
|
+
end
|
26
104
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,10 +3,15 @@ require 'simplecov'
|
|
3
3
|
SimpleCov.start
|
4
4
|
|
5
5
|
require 'test/unit'
|
6
|
+
require 'test/unit/rr'
|
7
|
+
require 'timecop'
|
6
8
|
|
7
9
|
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
8
10
|
$LOAD_PATH.unshift(__dir__)
|
9
11
|
require 'fluent/test'
|
12
|
+
require 'fluent/test/helpers'
|
10
13
|
require 'fluent/test/driver/input'
|
11
14
|
|
12
15
|
require 'fluent/plugin/in_serialport'
|
16
|
+
|
17
|
+
Test::Unit::TestCase.include(Fluent::Test::Helpers)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-serialport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MATSUMOTO Katsuyoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -72,6 +72,34 @@ dependencies:
|
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: test-unit-rr
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: timecop
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
75
103
|
- !ruby/object:Gem::Dependency
|
76
104
|
name: rake
|
77
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,10 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
151
|
version: '0'
|
124
152
|
requirements: []
|
125
153
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.6
|
154
|
+
rubygems_version: 2.7.6
|
127
155
|
signing_key:
|
128
156
|
specification_version: 4
|
129
157
|
summary: fluentd plugin for serial port
|
130
|
-
test_files:
|
131
|
-
- test/plugin/test_in_serialport.rb
|
132
|
-
- test/test_helper.rb
|
158
|
+
test_files: []
|