improve native fuzz
This commit is contained in:
parent
64ecd5ada1
commit
b540edbe1e
8 changed files with 53 additions and 7 deletions
|
|
@ -2,7 +2,7 @@ package myfuzz
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
|
||||
"linux-auth/internal/auth"
|
||||
"linux-auth/internal/db"
|
||||
)
|
||||
33
myfuzz/cover.out
Normal file
33
myfuzz/cover.out
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
mode: set
|
||||
linux-auth/internal/auth/auth.go:21.60,23.16 2 1
|
||||
linux-auth/internal/auth/auth.go:23.16,26.3 1 1
|
||||
linux-auth/internal/auth/auth.go:29.2,29.17 1 1
|
||||
linux-auth/internal/auth/auth.go:29.17,31.3 1 0
|
||||
linux-auth/internal/auth/auth.go:34.2,34.55 1 1
|
||||
linux-auth/internal/auth/auth.go:34.55,37.17 2 1
|
||||
linux-auth/internal/auth/auth.go:37.17,39.4 1 0
|
||||
linux-auth/internal/auth/auth.go:42.3,44.41 3 1
|
||||
linux-auth/internal/auth/auth.go:44.41,46.4 1 0
|
||||
linux-auth/internal/auth/auth.go:48.3,48.20 1 1
|
||||
linux-auth/internal/auth/auth.go:52.2,53.18 2 1
|
||||
linux-auth/internal/db/sqlite.go:29.30,33.16 3 1
|
||||
linux-auth/internal/db/sqlite.go:33.16,35.3 1 0
|
||||
linux-auth/internal/db/sqlite.go:38.2,38.39 1 1
|
||||
linux-auth/internal/db/sqlite.go:38.39,40.3 1 0
|
||||
linux-auth/internal/db/sqlite.go:42.2,42.23 1 1
|
||||
linux-auth/internal/db/sqlite.go:48.14,49.21 1 1
|
||||
linux-auth/internal/db/sqlite.go:49.21,51.3 1 1
|
||||
linux-auth/internal/db/sqlite.go:57.27,70.2 3 1
|
||||
linux-auth/internal/db/sqlite.go:77.46,97.26 6 1
|
||||
linux-auth/internal/db/sqlite.go:97.26,99.3 1 1
|
||||
linux-auth/internal/db/sqlite.go:100.2,100.16 1 1
|
||||
linux-auth/internal/db/sqlite.go:100.16,102.3 1 0
|
||||
linux-auth/internal/db/sqlite.go:104.2,105.19 2 1
|
||||
linux-auth/internal/db/sqlite.go:112.43,121.2 3 1
|
||||
linux-auth/internal/db/sqlite.go:127.40,136.2 3 1
|
||||
linux-auth/internal/db/sqlite.go:142.38,151.2 3 0
|
||||
linux-auth/internal/db/sqlite.go:158.54,165.16 3 0
|
||||
linux-auth/internal/db/sqlite.go:165.16,167.3 1 0
|
||||
linux-auth/internal/db/sqlite.go:169.2,169.12 1 0
|
||||
linux-auth/internal/utils/hash.go:13.43,16.2 2 1
|
||||
linux-auth/internal/utils/hash.go:24.48,26.2 1 1
|
||||
3
myfuzz/cover.txt
Normal file
3
myfuzz/cover.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
PASS
|
||||
coverage: 75.0% of statements in ../...
|
||||
ok linux-auth/myfuzz 0.046s
|
||||
|
|
@ -16,20 +16,22 @@ func FuzzAuth(f *testing.F) {
|
|||
db.Close()
|
||||
})
|
||||
|
||||
f.Add("admin", "admin")
|
||||
f.Add("user", "password")
|
||||
f.Add("", "")
|
||||
f.Add("admin", "admin123") // right admin
|
||||
f.Add("user1", "password1") // right user
|
||||
f.Add("admin", "admin") // wrong admin
|
||||
f.Add("user", "password") // wrong user
|
||||
f.Add("", "") // blank test
|
||||
|
||||
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)
|
||||
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)
|
||||
t.Errorf("Unexpected login for username %q and password %q", username, password)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,3 +3,4 @@
|
|||
cp ../data/users.db test_data.db
|
||||
|
||||
go test -fuzz=FuzzAuth -fuzztime=5m --parallel=1
|
||||
go test -run=FuzzAuth -coverprofile=cover.out -coverpkg=../... | tee cover.txt
|
||||
|
|
|
|||
3
myfuzz/view_fuzz_coverage.sh
Executable file
3
myfuzz/view_fuzz_coverage.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
go tool cover -html=cover.out
|
||||
Loading…
Add table
Add a link
Reference in a new issue