1
1
require_relative '../helper'
2
2
require 'fluent/plugin/filter_grep'
3
+ require 'fluent/test/driver/filter'
3
4
4
5
class GrepFilterTest < Test ::Unit ::TestCase
5
6
include Fluent
6
7
7
8
setup do
8
9
Fluent ::Test . setup
9
- @time = Fluent :: Engine . now
10
+ @time = event_time
10
11
end
11
12
12
13
def create_driver ( conf = '' )
13
- Test ::FilterTestDriver . new ( GrepFilter ) . configure ( conf , true )
14
+ Fluent :: Test ::Driver :: Filter . new ( Fluent :: Plugin :: GrepFilter ) . configure ( conf )
14
15
end
15
16
16
17
sub_test_case 'configure' do
@@ -41,35 +42,36 @@ def messages
41
42
]
42
43
end
43
44
44
- def emit ( config , msgs )
45
+ def filter ( config , msgs )
45
46
d = create_driver ( config )
46
47
d . run {
47
48
msgs . each { |msg |
48
- d . emit ( { 'foo' => 'bar' , 'message' => msg } , @time )
49
+ d . feed ( "filter.test" , @time , { 'foo' => 'bar' , 'message' => msg } )
49
50
}
50
- } . filtered
51
+ }
52
+ d . filtered_records
51
53
end
52
54
53
55
test 'empty config' do
54
- es = emit ( '' , messages )
55
- assert_equal ( 4 , es . instance_variable_get ( :@record_array ) . size )
56
+ filtered_records = filter ( '' , messages )
57
+ assert_equal ( 4 , filtered_records . size )
56
58
end
57
59
58
60
test 'regexpN' do
59
- es = emit ( 'regexp1 message WARN' , messages )
60
- assert_equal ( 3 , es . instance_variable_get ( :@record_array ) . size )
61
+ filtered_records = filter ( 'regexp1 message WARN' , messages )
62
+ assert_equal ( 3 , filtered_records . size )
61
63
assert_block ( 'only WARN logs' ) do
62
- es . all? { |t , r |
64
+ filtered_records . all? { |r |
63
65
!r [ 'message' ] . include? ( 'INFO' )
64
66
}
65
67
end
66
68
end
67
69
68
70
test 'excludeN' do
69
- es = emit ( 'exclude1 message favicon' , messages )
70
- assert_equal ( 3 , es . instance_variable_get ( :@record_array ) . size )
71
+ filtered_records = filter ( 'exclude1 message favicon' , messages )
72
+ assert_equal ( 3 , filtered_records . size )
71
73
assert_block ( 'remove favicon logs' ) do
72
- es . all? { |t , r |
74
+ filtered_records . all? { |r |
73
75
!r [ 'message' ] . include? ( 'favicon' )
74
76
}
75
77
end
@@ -84,17 +86,19 @@ def messages
84
86
85
87
test "don't raise an exception" do
86
88
assert_nothing_raised {
87
- emit ( %[regexp1 message WARN] , [ "\xff " . force_encoding ( 'UTF-8' ) ] )
89
+ filter ( %[regexp1 message WARN] , [ "\xff " . force_encoding ( 'UTF-8' ) ] )
88
90
}
89
91
end
90
92
end
91
93
end
92
94
93
95
sub_test_case 'grep non-string jsonable values' do
94
- def emit ( msg , config = 'regexp1 message 0' )
96
+ def filter ( msg , config = 'regexp1 message 0' )
95
97
d = create_driver ( config )
96
- d . emit ( { 'foo' => 'bar' , 'message' => msg } , @time )
97
- d . run . filtered
98
+ d . run do
99
+ d . feed ( "filter.test" , @time , { 'foo' => 'bar' , 'message' => msg } )
100
+ end
101
+ d . filtered_records
98
102
end
99
103
100
104
data (
@@ -103,13 +107,13 @@ def emit(msg, config = 'regexp1 message 0')
103
107
'integer' => 0 ,
104
108
'float' => 0.1 )
105
109
test "value" do |data |
106
- es = emit ( data )
107
- assert_equal ( 1 , es . instance_variable_get ( :@record_array ) . size )
110
+ filtered_records = filter ( data )
111
+ assert_equal ( 1 , filtered_records . size )
108
112
end
109
113
110
114
test "value boolean" do
111
- es = emit ( true , %[regexp1 message true] )
112
- assert_equal ( 1 , es . instance_variable_get ( :@record_array ) . size )
115
+ filtered_records = filter ( true , %[regexp1 message true] )
116
+ assert_equal ( 1 , filtered_records . size )
113
117
end
114
118
end
115
119
end
0 commit comments