very simple fuzz test

This commit is contained in:
vovuas2003 2026-05-05 13:36:51 +03:00
parent 290989064d
commit b3aa0b6ddd
3 changed files with 51 additions and 1 deletions

View file

@ -143,4 +143,14 @@ bash scripts/run.sh
Добавить нового пользователя:
```
./build/release/add_user -username test -password 1234
```
```
## Запуск фаззинга
Сначала соберите приложение и инициализируйте тестовую базу (init_users).
Далее:
1. cd myfuzz
2. ./run_fuzz.sh

35
myfuzz/myfuzz_test.go Normal file
View file

@ -0,0 +1,35 @@
package myfuzz
import (
"testing"
"linux-auth/internal/auth"
"linux-auth/internal/db"
)
func FuzzAuth(f *testing.F) {
err := db.Init("test_data.db")
if err != nil {
f.Fatalf("DB init error: %v", err)
}
f.Cleanup(func() {
db.Close()
})
f.Add("admin", "admin")
f.Add("user", "password")
f.Add("", "")
f.Fuzz(func(t *testing.T, username string, password string) {
ok, err := auth.Authenticate(username, password)
if err != nil {
t.Errorf("For {username} {%q} and {password} {%q} error: %v", username, password, err)
}
if ok {
if (username == "admin" && password == "admin123") || (username == "user1" && password == "password1") {
return
}
t.Errorf("Unexpected login for {username} {%q} and {password} {%q}", username, password)
}
})
}

5
myfuzz/run_fuzz.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
cp ../data/users.db test_data.db
go test -fuzz=FuzzAuth -fuzztime=5m --parallel=1