forked from nihonium/linux-auth
very simple fuzz test
This commit is contained in:
parent
290989064d
commit
b3aa0b6ddd
3 changed files with 51 additions and 1 deletions
12
README.md
12
README.md
|
|
@ -143,4 +143,14 @@ bash scripts/run.sh
|
||||||
Добавить нового пользователя:
|
Добавить нового пользователя:
|
||||||
```
|
```
|
||||||
./build/release/add_user -username test -password 1234
|
./build/release/add_user -username test -password 1234
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Запуск фаззинга
|
||||||
|
|
||||||
|
Сначала соберите приложение и инициализируйте тестовую базу (init_users).
|
||||||
|
|
||||||
|
Далее:
|
||||||
|
|
||||||
|
1. cd myfuzz
|
||||||
|
|
||||||
|
2. ./run_fuzz.sh
|
||||||
|
|
|
||||||
35
myfuzz/myfuzz_test.go
Normal file
35
myfuzz/myfuzz_test.go
Normal 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
5
myfuzz/run_fuzz.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cp ../data/users.db test_data.db
|
||||||
|
|
||||||
|
go test -fuzz=FuzzAuth -fuzztime=5m --parallel=1
|
||||||
Loading…
Add table
Add a link
Reference in a new issue