tests/fuzzers: improve the fuzzers (#21829)

* tests/fuzzers, common/bitutil: make fuzzers use correct returnvalues + remove output

* tests/fuzzers/stacktrie: fix duplicate-key insertion in stacktrie (false positive)

* tests/fuzzers/stacktrie: fix compilation error

* tests/fuzzers: linter nits
This commit is contained in:
Martin Holst Swende
2020-11-13 12:36:38 +01:00
committed by GitHub
parent 9ded4e33c5
commit 0703c91fba
5 changed files with 33 additions and 20 deletions

View File

@@ -51,8 +51,9 @@ func init() {
func Fuzz(input []byte) int {
// Don't generate insanely large test cases, not much value in them
if len(input) > 16*1024 {
return -1
return 0
}
verbose := false
r := bytes.NewReader(input)
// Reduce the problem space for certain fuzz runs. Small tx space is better
@@ -124,7 +125,9 @@ func Fuzz(input []byte) int {
announceIdxs[i] = (int(annBuf[0])*256 + int(annBuf[1])) % len(txs)
announces[i] = txs[announceIdxs[i]].Hash()
}
fmt.Println("Notify", peer, announceIdxs)
if verbose {
fmt.Println("Notify", peer, announceIdxs)
}
if err := f.Notify(peer, announces); err != nil {
panic(err)
}
@@ -163,8 +166,9 @@ func Fuzz(input []byte) int {
return 0
}
direct := (directFlag % 2) == 0
fmt.Println("Enqueue", peer, deliverIdxs, direct)
if verbose {
fmt.Println("Enqueue", peer, deliverIdxs, direct)
}
if err := f.Enqueue(peer, deliveries, direct); err != nil {
panic(err)
}
@@ -177,8 +181,9 @@ func Fuzz(input []byte) int {
return 0
}
peer := peers[int(peerIdx)%len(peers)]
fmt.Println("Drop", peer)
if verbose {
fmt.Println("Drop", peer)
}
if err := f.Drop(peer); err != nil {
panic(err)
}
@@ -191,8 +196,9 @@ func Fuzz(input []byte) int {
return 0
}
tick := time.Duration(tickCnt) * 100 * time.Millisecond
fmt.Println("Sleep", tick)
if verbose {
fmt.Println("Sleep", tick)
}
clock.Run(tick)
}
}