check for multiple inverse matches (#1332)

* update check for multiple inverse matches

Signed-off-by: David Stäheli <mistrdave@gmail.com>

* after match, direct return true

Signed-off-by: David Stäheli <mistrdave@gmail.com>

* apply same behaviour to checkEventGroupConditionPatterns

Signed-off-by: David Stäheli <mistrdave@gmail.com>

* fix spellmistake of function name

Signed-off-by: David Stäheli <mistrdave@gmail.com>

---------

Signed-off-by: David Stäheli <mistrdave@gmail.com>
This commit is contained in:
David Stäheli
2023-07-02 09:49:21 +02:00
committed by GitHub
parent 51d8f3b436
commit f78e4b0443
2 changed files with 64 additions and 10 deletions

View File

@@ -355,6 +355,55 @@ func TestDoubleStarMatching(t *testing.T) {
assert.False(t, res)
res = checkEventConditionPattern(c, "/mydir/sub/dir/a.txt")
assert.True(t, res)
c.InverseMatch = true
assert.True(t, checkEventConditionPattern(c, "/mydir"))
assert.True(t, checkEventConditionPattern(c, "/mydirname/f.txt"))
assert.True(t, checkEventConditionPattern(c, "/mydir/sub"))
assert.True(t, checkEventConditionPattern(c, "/mydir/sub/dir"))
assert.False(t, checkEventConditionPattern(c, "/mydir/sub/dir/a.txt"))
}
func TestMutlipleDoubleStarMatching(t *testing.T) {
patterns := []dataprovider.ConditionPattern{
{
Pattern: "/**/*.txt",
InverseMatch: false,
},
{
Pattern: "/**/*.tmp",
InverseMatch: false,
},
}
assert.False(t, checkEventConditionPatterns("/mydir", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/test.tmp", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/test.txt", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/test.csv", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/sub", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/sub/test.tmp", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/sub/test.txt", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/sub/test.csv", patterns))
}
func TestMultipleDoubleStarMatchingInverse(t *testing.T) {
patterns := []dataprovider.ConditionPattern{
{
Pattern: "/**/*.txt",
InverseMatch: true,
},
{
Pattern: "/**/*.tmp",
InverseMatch: true,
},
}
assert.True(t, checkEventConditionPatterns("/mydir", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/test.tmp", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/test.txt", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/test.csv", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/sub", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/sub/test.tmp", patterns))
assert.False(t, checkEventConditionPatterns("/mydir/sub/test.txt", patterns))
assert.True(t, checkEventConditionPatterns("/mydir/sub/test.csv", patterns))
}
func TestEventManager(t *testing.T) {