@@ -1069,4 +1069,122 @@ def filter_with_time(conf, messages, wait: nil)
1069
1069
assert_equal ( expected , filtered )
1070
1070
end
1071
1071
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
1072
1190
end
0 commit comments