@@ -1069,4 +1069,122 @@ def filter_with_time(conf, messages, wait: nil)
10691069 assert_equal ( expected , filtered )
10701070 end
10711071 end
1072+
1073+ sub_test_case "overflow" do
1074+ test "ignore" do
1075+ config = <<-CONFIG
1076+ key message
1077+ partial_key partial_message
1078+ partial_value true
1079+ keep_partial_key false
1080+ buffer_limit_size 10
1081+ buffer_overflow_method ignore
1082+ CONFIG
1083+ messages = [
1084+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1085+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
1086+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
1087+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1088+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1089+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
1090+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
1091+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1092+ ]
1093+ filtered = filter ( config , messages , wait : 3 )
1094+ expected = [
1095+ { "container_id" => "1" , "message" => "start\n message 1\n message 2\n end" } ,
1096+ { "container_id" => "1" , "message" => "start\n message 3\n message 4\n end" } ,
1097+ ]
1098+ assert_equal ( expected , filtered )
1099+ end
1100+
1101+ test "truncate" do
1102+ config = <<-CONFIG
1103+ key message
1104+ partial_key partial_message
1105+ partial_value true
1106+ keep_partial_key false
1107+ buffer_limit_size 60
1108+ buffer_overflow_method truncate
1109+ CONFIG
1110+ messages = [
1111+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1112+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
1113+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
1114+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1115+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1116+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
1117+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
1118+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1119+ ]
1120+ filtered = filter ( config , messages , wait : 3 )
1121+ expected = [
1122+ { "container_id" => "1" , "message" => "start" } ,
1123+ { "container_id" => "1" , "message" => " message 2" } ,
1124+ { "container_id" => "1" , "message" => "start" } ,
1125+ { "container_id" => "1" , "message" => " message 4" } ,
1126+ ]
1127+ assert_equal ( expected , filtered )
1128+ end
1129+
1130+ test "drop" do
1131+ config = <<-CONFIG
1132+ key message
1133+ partial_key partial_message
1134+ partial_value true
1135+ keep_partial_key false
1136+ buffer_limit_size 100
1137+ buffer_overflow_method drop
1138+ CONFIG
1139+ messages = [
1140+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1141+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
1142+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
1143+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1144+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1145+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
1146+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
1147+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1148+ ]
1149+ filtered = filter ( config , messages , wait : 3 )
1150+ expected = [
1151+ { "container_id" => "1" , "message" => "end" } ,
1152+ { "container_id" => "1" , "message" => "end" } ,
1153+ ]
1154+ assert_equal ( expected , filtered )
1155+ end
1156+
1157+ test "new" do
1158+ config = <<-CONFIG
1159+ key message
1160+ partial_key partial_message
1161+ partial_value true
1162+ keep_partial_key false
1163+ buffer_limit_size 90
1164+ buffer_overflow_method new
1165+ CONFIG
1166+ messages = [
1167+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1168+ { "container_id" => "1" , "message" => " message 1" , "partial_message" => "true" } ,
1169+ { "container_id" => "1" , "message" => " message 2" , "partial_message" => "true" } ,
1170+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1171+ { "container_id" => "1" , "message" => "start" , "partial_message" => "true" } ,
1172+ { "container_id" => "1" , "message" => " message 3" , "partial_message" => "true" } ,
1173+ { "container_id" => "1" , "message" => " message 4" , "partial_message" => "true" } ,
1174+ { "container_id" => "1" , "message" => "end" , "partial_message" => "false" } ,
1175+ ]
1176+ filtered = filter ( config , messages , wait : 3 )
1177+ expected = [
1178+ { "container_id" => "1" , "message" => "start" } ,
1179+ { "container_id" => "1" , "message" => " message 1" } ,
1180+ { "container_id" => "1" , "message" => " message 2" } ,
1181+ { "container_id" => "1" , "message" => "end" } ,
1182+ { "container_id" => "1" , "message" => "start" } ,
1183+ { "container_id" => "1" , "message" => " message 3" } ,
1184+ { "container_id" => "1" , "message" => " message 4" } ,
1185+ { "container_id" => "1" , "message" => "end" } ,
1186+ ]
1187+ assert_equal ( expected , filtered )
1188+ end
1189+ end
10721190end
0 commit comments