diff --git a/test/helper.rb b/test/helper.rb index 77b74ed..04e96f0 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -1,28 +1,10 @@ -require 'rubygems' -require 'bundler' +require "test-unit" +require "fluent/test" -require 'test/unit' -require 'test/unit/rr' - -$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) -$LOAD_PATH.unshift(File.dirname(__FILE__)) - -require 'fluent/test' - -class Test::Unit::TestCase - def capture_log(log) - if defined?(Fluent::Test::TestLogger) and log.is_a?(Fluent::Test::TestLogger) # v0.14 - yield - log.out.logs.join("\n") - else - begin - tmp = log.out - log.out = StringIO.new - yield - return log.out.string - ensure - log.out = tmp - end +module Helper + def normalize_logs(logs) + logs.collect do |log| + log.gsub(/\A\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [-+]\d{4} \[info\]: /, "") end end end diff --git a/test/plugin/test_filter_flowcounter_simple.rb b/test/plugin/test_filter_flowcounter_simple.rb index a33961b..69a749b 100644 --- a/test/plugin/test_filter_flowcounter_simple.rb +++ b/test/plugin/test_filter_flowcounter_simple.rb @@ -4,6 +4,7 @@ class FlowCounterSimpleFilterTest < Test::Unit::TestCase include Fluent + include Helper def setup Fluent::Test.setup @@ -25,9 +26,10 @@ def test_filter msgs << {'message'=> 'b' * 100} end d = create_driver - filtered, out = filter(d, msgs) + filtered, logs = filter(d, msgs) assert_equal msgs, filtered - assert { out.include?("count:20") } + assert_equal(["plugin:filter_flowcounter_simple\tcount:20\tindicator:num\tunit:second\n"], + normalize_logs(logs)) end private @@ -37,10 +39,8 @@ def filter(d, msgs) msgs.each {|msg| d.feed(msg) } - } - out = capture_log(d.instance.log) do d.instance.flush_emit(0) - end - [d.filtered_records, out] + } + [d.filtered_records, d.logs] end end diff --git a/test/plugin/test_out_flowcounter_simple.rb b/test/plugin/test_out_flowcounter_simple.rb index 78ce5ea..1cd6770 100644 --- a/test/plugin/test_out_flowcounter_simple.rb +++ b/test/plugin/test_out_flowcounter_simple.rb @@ -3,6 +3,8 @@ require 'fluent/plugin/out_flowcounter_simple' class FlowCounterSimpleOutputTest < Test::Unit::TestCase + include Helper + def setup Fluent::Test.setup end @@ -38,9 +40,10 @@ def test_num d1.feed({'message'=> 'b' * 100}) d1.feed({'message'=> 'c' * 100}) end + d1.instance.flush_emit(60) end - out = capture_log(d1.instance.log) { d1.instance.flush_emit(60) } - assert { out.include?("count:30") } + assert_equal(["plugin:out_flowcounter_simple\tcount:30\tindicator:num\tunit:second\n"], + normalize_logs(d1.logs)) end def test_byte @@ -51,9 +54,10 @@ def test_byte d1.feed({'message'=> 'b' * 100}) d1.feed({'message'=> 'c' * 100}) end + d1.instance.flush_emit(60) end - out = capture_log(d1.instance.log) { d1.instance.flush_emit(60) } - assert { out =~ /count:\d+\tindicator:byte\tunit:second/ } + assert_equal(["plugin:out_flowcounter_simple\tcount:3330\tindicator:byte\tunit:second\n"], + normalize_logs(d1.logs)) end def test_comment @@ -64,8 +68,9 @@ def test_comment d1.feed({'message'=> 'b' * 100}) d1.feed({'message'=> 'c' * 100}) end + d1.instance.flush_emit(60) end - out = capture_log(d1.instance.log) { d1.instance.flush_emit(60) } - assert { out.include?("comment:foobar") } + assert_equal(["plugin:out_flowcounter_simple\tcount:3\tindicator:num\tunit:second\tcomment:foobar\n"], + normalize_logs(d1.logs)) end end