MCPcopy Index your code
hub / github.com/crowdsecurity/crowdsec / TestRegexpCacheBehavior

Function TestRegexpCacheBehavior

pkg/exprhelpers/exprlib_test.go:269–300  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

267}
268
269func TestRegexpCacheBehavior(t *testing.T) {
270 err := Init(nil)
271 require.NoError(t, err)
272
273 filename := "test_data_re.txt"
274 err = FileInit("testdata", filename, "regex")
275 require.NoError(t, err)
276
277 // cache with no TTL
278 err = RegexpCacheInit(filename, enrichment.DataProvider{Type: "regex", Size: new(1)})
279 require.NoError(t, err)
280
281 ret, _ := RegexpInFile("crowdsec", filename)
282 assert.False(t, ret.(bool))
283 assert.Equal(t, 1, dataFileRegexCache[filename].Len(false))
284
285 ret, _ = RegexpInFile("Crowdsec", filename)
286 assert.True(t, ret.(bool))
287 assert.Equal(t, 1, dataFileRegexCache[filename].Len(false))
288
289 // cache with TTL
290 ttl := 500 * time.Millisecond
291 err = RegexpCacheInit(filename, enrichment.DataProvider{Type: "regex", Size: new(2), TTL: &ttl})
292 require.NoError(t, err)
293
294 ret, _ = RegexpInFile("crowdsec", filename)
295 assert.False(t, ret.(bool))
296 assert.Equal(t, 1, dataFileRegexCache[filename].Len(true))
297
298 time.Sleep(1 * time.Second)
299 assert.Equal(t, 0, dataFileRegexCache[filename].Len(true))
300}
301
302func TestRegexpInFile(t *testing.T) {
303 if err := Init(nil); err != nil {

Callers

nothing calls this directly

Calls 5

InitFunction · 0.85
FileInitFunction · 0.85
RegexpCacheInitFunction · 0.85
RegexpInFileFunction · 0.85
LenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…