@@ -733,4 +733,122 @@ def filter_with_time(conf, messages, wait: nil)
733733 assert_equal ( expected , filtered )
734734 end
735735 end
736+
737+ sub_test_case "overflow" do
738+ test "ignore" do
739+ config = <<-CONFIG
740+ key message
741+ partial_key partial_message
742+ partial_value true
743+ keep_partial_key false
744+ buffer_size_limit 10
745+ buffer_overflow_method ignore
746+ CONFIG
747+ messages = [
748+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
749+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
750+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
751+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
752+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
753+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
754+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
755+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
756+ ]
757+ filtered = filter ( config , messages , wait : 3 )
758+ expected = [
759+ { "container_id" => "1" , "message" => "start\n message 1\n message 2\n end" } ,
760+ { "container_id" => "1" , "message" => "start\n message 3\n message 4\n end" } ,
761+ ]
762+ assert_equal ( expected , filtered )
763+ end
764+
765+ test "truncate" do
766+ config = <<-CONFIG
767+ key message
768+ partial_key partial_message
769+ partial_value true
770+ keep_partial_key false
771+ buffer_size_limit 60
772+ buffer_overflow_method truncate
773+ CONFIG
774+ messages = [
775+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
776+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
777+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
778+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
779+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
780+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
781+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
782+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
783+ ]
784+ filtered = filter ( config , messages , wait : 3 )
785+ expected = [
786+ { "container_id" => "1" , "message" => "start" } ,
787+ { "container_id" => "1" , "message" => " message 2" } ,
788+ { "container_id" => "1" , "message" => "start" } ,
789+ { "container_id" => "1" , "message" => " message 4" } ,
790+ ]
791+ assert_equal ( expected , filtered )
792+ end
793+
794+ test "drop" do
795+ config = <<-CONFIG
796+ key message
797+ partial_key partial_message
798+ partial_value true
799+ keep_partial_key false
800+ buffer_size_limit 100
801+ buffer_overflow_method drop
802+ CONFIG
803+ messages = [
804+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
805+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
806+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
807+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
808+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
809+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
810+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
811+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
812+ ]
813+ filtered = filter ( config , messages , wait : 3 )
814+ expected = [
815+ { "container_id" => "1" , "message" => "end" } ,
816+ { "container_id" => "1" , "message" => "end" } ,
817+ ]
818+ assert_equal ( expected , filtered )
819+ end
820+
821+ test "new" do
822+ config = <<-CONFIG
823+ key message
824+ partial_key partial_message
825+ partial_value true
826+ keep_partial_key false
827+ buffer_size_limit 90
828+ buffer_overflow_method new
829+ CONFIG
830+ messages = [
831+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
832+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
833+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
834+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
835+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
836+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
837+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
838+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
839+ ]
840+ filtered = filter ( config , messages , wait : 3 )
841+ expected = [
842+ { "container_id" => "1" , "message" => "start" } ,
843+ { "container_id" => "1" , "message" => " message 1" } ,
844+ { "container_id" => "1" , "message" => " message 2" } ,
845+ { "container_id" => "1" , "message" => "end" } ,
846+ { "container_id" => "1" , "message" => "start" } ,
847+ { "container_id" => "1" , "message" => " message 3" } ,
848+ { "container_id" => "1" , "message" => " message 4" } ,
849+ { "container_id" => "1" , "message" => "end" } ,
850+ ]
851+ assert_equal ( expected , filtered )
852+ end
853+ end
736854end
0 commit comments