Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/operators/matchers/fuzz_harness_test.go
4538 views
1
package matchers
2
3
import (
4
"os"
5
"path/filepath"
6
"testing"
7
8
"github.com/stretchr/testify/require"
9
)
10
11
func TestMatcherFromFuzzDataSeedCorpus(t *testing.T) {
12
entries, err := os.ReadDir("testdata/gofuzz-corpus")
13
require.NoError(t, err)
14
require.NotEmpty(t, entries)
15
16
for _, entry := range entries {
17
if entry.IsDir() {
18
continue
19
}
20
21
path := filepath.Join("testdata/gofuzz-corpus", entry.Name())
22
data, err := os.ReadFile(path)
23
require.NoError(t, err)
24
25
matcher, ok := matcherFromFuzzData(data)
26
require.Truef(t, ok, "seed %s should decode into a matcher", entry.Name())
27
require.NoErrorf(t, matcher.CompileMatchers(), "seed %s should compile", entry.Name())
28
}
29
}
30
31
func TestMatcherFromFuzzDataRejectsOversizeInput(t *testing.T) {
32
data := make([]byte, fuzzMaxInputSize+1)
33
matcher, ok := matcherFromFuzzData(data)
34
require.False(t, ok)
35
require.Nil(t, matcher)
36
}
37
38