@@ -293,6 +293,133 @@ func TestClusterFilterList_Load_With_Ordinals(t *testing.T) {
293293 }
294294}
295295
296+ func TestClusterFilterList_Load_Grep_LogicalOp (t * testing.T ) {
297+ filtersExpected := `[Filter]
298+ Name grep
299+ Match *
300+ Regex log aa
301+ Exclude log bb
302+ Logical_Op and
303+ `
304+
305+ g := NewGomegaWithT (t )
306+ sl := plugins .NewSecretLoader (nil , "testnamespace" )
307+
308+ filterObj := & ClusterFilter {
309+ TypeMeta : metav1.TypeMeta {
310+ APIVersion : "fluentbit.fluent.io/v1alpha2" ,
311+ Kind : "ClusterFilter" ,
312+ },
313+ ObjectMeta : metav1.ObjectMeta {
314+ Name : "filter-grep-logical-op" ,
315+ },
316+ Spec : FilterSpec {
317+ Match : "*" ,
318+ FilterItems : []FilterItem {
319+ {
320+ Grep : & filter.Grep {
321+ Regex : "log aa" ,
322+ Exclude : "log bb" ,
323+ LogicalOp : "and" ,
324+ },
325+ },
326+ },
327+ },
328+ }
329+
330+ filters := ClusterFilterList {
331+ Items : []ClusterFilter {* filterObj },
332+ }
333+
334+ clusterFilters , err := filters .Load (sl )
335+ g .Expect (err ).NotTo (HaveOccurred ())
336+ g .Expect (clusterFilters ).To (Equal (filtersExpected ))
337+ }
338+
339+ func TestClusterFilterList_Load_Grep_LogicalOp_Or (t * testing.T ) {
340+ filtersExpected := `[Filter]
341+ Name grep
342+ Match *
343+ Regex log aa
344+ Exclude log bb
345+ Logical_Op or
346+ `
347+
348+ g := NewGomegaWithT (t )
349+ sl := plugins .NewSecretLoader (nil , "testnamespace" )
350+
351+ filterObj := & ClusterFilter {
352+ TypeMeta : metav1.TypeMeta {
353+ APIVersion : "fluentbit.fluent.io/v1alpha2" ,
354+ Kind : "ClusterFilter" ,
355+ },
356+ ObjectMeta : metav1.ObjectMeta {
357+ Name : "filter-grep-logical-op-or" ,
358+ },
359+ Spec : FilterSpec {
360+ Match : "*" ,
361+ FilterItems : []FilterItem {
362+ {
363+ Grep : & filter.Grep {
364+ Regex : "log aa" ,
365+ Exclude : "log bb" ,
366+ LogicalOp : "or" ,
367+ },
368+ },
369+ },
370+ },
371+ }
372+
373+ filters := ClusterFilterList {
374+ Items : []ClusterFilter {* filterObj },
375+ }
376+
377+ clusterFilters , err := filters .Load (sl )
378+ g .Expect (err ).NotTo (HaveOccurred ())
379+ g .Expect (clusterFilters ).To (Equal (filtersExpected ))
380+ }
381+
382+ func TestClusterFilterList_Load_Grep_LogicalOp_Empty (t * testing.T ) {
383+ filtersExpected := `[Filter]
384+ Name grep
385+ Match *
386+ Regex log aa
387+ Exclude log bb
388+ `
389+
390+ g := NewGomegaWithT (t )
391+ sl := plugins .NewSecretLoader (nil , "testnamespace" )
392+
393+ filterObj := & ClusterFilter {
394+ TypeMeta : metav1.TypeMeta {
395+ APIVersion : "fluentbit.fluent.io/v1alpha2" ,
396+ Kind : "ClusterFilter" ,
397+ },
398+ ObjectMeta : metav1.ObjectMeta {
399+ Name : "filter-grep-no-logical-op" ,
400+ },
401+ Spec : FilterSpec {
402+ Match : "*" ,
403+ FilterItems : []FilterItem {
404+ {
405+ Grep : & filter.Grep {
406+ Regex : "log aa" ,
407+ Exclude : "log bb" ,
408+ },
409+ },
410+ },
411+ },
412+ }
413+
414+ filters := ClusterFilterList {
415+ Items : []ClusterFilter {* filterObj },
416+ }
417+
418+ clusterFilters , err := filters .Load (sl )
419+ g .Expect (err ).NotTo (HaveOccurred ())
420+ g .Expect (clusterFilters ).To (Equal (filtersExpected ))
421+ }
422+
296423func TestClusterFilter_RecordModifier_Generated (t * testing.T ) {
297424 filtersExpected := `[Filter]
298425 Name record_modifier
0 commit comments