@@ -158,37 +158,49 @@ class GrokParserTest < ::Test::Unit::TestCase
158158 end
159159 end
160160
161- test "no grok patterns" do
162- assert_raise Fluent ::ConfigError do
163- create_driver ( '' )
161+ sub_test_case "configure" do
162+ test "no grok patterns" do
163+ assert_raise Fluent ::ConfigError do
164+ create_driver ( '' )
165+ end
166+ end
167+
168+ test "invalid config value type" do
169+ assert_raise Fluent ::ConfigError do
170+ create_driver ( %[
171+ <grok>
172+ pattern %{PATH:path:foo}
173+ </grok>
174+ ] )
175+ end
164176 end
165- end
166177
167- test "invalid config value type" do
168- assert_raise Fluent ::ConfigError do
169- create_driver ( %[
178+ test "invalid config value type and normal grok pattern" do
179+ d = create_driver ( %[
170180 <grok>
171181 pattern %{PATH:path:foo}
172182 </grok>
183+ <grok>
184+ pattern %{IP:ip_address}
185+ </grok>
173186 ] )
187+ assert_equal ( 1 , d . instance . instance_variable_get ( :@grok ) . parsers . size )
188+ logs = $log. instance_variable_get ( :@logger ) . instance_variable_get ( :@logdev ) . logs
189+ error_logs = logs . grep ( /error_class/ )
190+ assert_equal ( 1 , error_logs . size )
191+ error_message = error_logs . first [ /error="(.+)"/ , 1 ]
192+ assert_equal ( "unknown value conversion for key:'path', type:'foo'" , error_message )
174193 end
175- end
176194
177- test "invalid config value type and normal grok pattern" do
178- d = create_driver ( %[
179- <grok>
180- pattern %{PATH:path:foo}
181- </grok>
182- <grok>
183- pattern %{IP:ip_address}
184- </grok>
185- ] )
186- assert_equal ( 1 , d . instance . instance_variable_get ( :@grok ) . parsers . size )
187- logs = $log. instance_variable_get ( :@logger ) . instance_variable_get ( :@logdev ) . logs
188- error_logs = logs . grep ( /error_class/ )
189- assert_equal ( 1 , error_logs . size )
190- error_message = error_logs . first [ /error="(.+)"/ , 1 ]
191- assert_equal ( "unknown value conversion for key:'path', type:'foo'" , error_message )
195+ test "keep original configuration" do
196+ config = %[
197+ <grok>
198+ pattern %{INT:user_id:integer} paid %{NUMBER:paid_amount:float}
199+ </grok>
200+ ]
201+ d = create_driver ( config )
202+ assert_equal ( "%{INT:user_id:integer} paid %{NUMBER:paid_amount:float}" , d . instance . config . elements ( "grok" ) . first [ "pattern" ] )
203+ end
192204 end
193205
194206 sub_test_case "grok_name_key" do
0 commit comments