Tryout go test fuzzing
This commit is contained in:
parent
fce78d234d
commit
38ff8949b9
@ -21,3 +21,18 @@ func TestBBoltStore(t *testing.T) {
|
||||
}
|
||||
testLoginAttemptStore(s, t)
|
||||
}
|
||||
|
||||
func FuzzBBoltStore(f *testing.F) {
|
||||
dir := f.TempDir()
|
||||
file, err := os.CreateTemp(dir, "apiary-test-bbolt")
|
||||
if err != nil {
|
||||
f.Fatal(err)
|
||||
}
|
||||
fname := file.Name()
|
||||
file.Close()
|
||||
s, err := store.NewBBoltStore(fname)
|
||||
if err != nil {
|
||||
f.Fatal(err)
|
||||
}
|
||||
fuzzLoginAttemptStore(s, f)
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ func TestMemoryStore(t *testing.T) {
|
||||
s := &store.MemoryStore{}
|
||||
testLoginAttemptStore(s, t)
|
||||
}
|
||||
|
||||
func TestMemoryStoreWithCache(t *testing.T) {
|
||||
backend := &store.MemoryStore{}
|
||||
s := store.NewCachingStore(backend)
|
||||
@ -22,3 +23,8 @@ func BenchmarkMemoryStore(b *testing.B) {
|
||||
}
|
||||
benchmarkLoginAttemptStore(setupFunc, b)
|
||||
}
|
||||
|
||||
func FuzzMemoryStore(f *testing.F) {
|
||||
s := &store.MemoryStore{}
|
||||
fuzzLoginAttemptStore(s, f)
|
||||
}
|
||||
|
@ -323,3 +323,22 @@ func equalAttempts(a, b []models.LoginAttempt) bool {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func fuzzLoginAttemptStore(s store.LoginAttemptStore, f *testing.F) {
|
||||
usernames := []string{"username", "root", "ubnt", "pi", "admin"}
|
||||
for _, username := range usernames {
|
||||
f.Add(username)
|
||||
}
|
||||
f.Fuzz(func(t *testing.T, orig string) {
|
||||
attempt := models.LoginAttempt{
|
||||
Date: time.Now(),
|
||||
Username: orig,
|
||||
Password: randomString(8),
|
||||
Country: "NO",
|
||||
}
|
||||
|
||||
if err := s.AddAttempt(&attempt); err != nil {
|
||||
t.Fatalf("error adding: %s", err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user