Skip to content

Commit

Permalink
sumdb/tlog: fuzz tests for parsers
Browse files Browse the repository at this point in the history
Future fuzz tests could test round trip properties

Change-Id: If195b82998ebedaeca68a7723c2558369e68f716
GitHub-Last-Rev: 6fff4e6
GitHub-Pull-Request: #18
Reviewed-on: https://go-review.googlesource.com/c/mod/+/470155
Run-TryBot: Matthew Hickford <hickford@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Hickford <hickford@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
  • Loading branch information
hickford authored and gopherbot committed Feb 27, 2023
1 parent b710602 commit 69aa7ac
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
16 changes: 16 additions & 0 deletions sumdb/tlog/note_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,19 @@ func TestParseRecord(t *testing.T) {
}
}
}

// FuzzParseTree tests that ParseTree never crashes
func FuzzParseTree(f *testing.F) {
f.Add([]byte("go.sum database tree\n123456789012\nTszzRgjTG6xce+z2AG31kAXYKBgQVtCSCE40HmuwBb0=\n"))
f.Fuzz(func(t *testing.T, text []byte) {
ParseTree(text)
})
}

// FuzzParseRecord tests that ParseRecord never crashes
func FuzzParseRecord(f *testing.F) {
f.Add([]byte("12345\nhello\n\n"))
f.Fuzz(func(t *testing.T, msg []byte) {
ParseRecord(msg)
})
}
24 changes: 24 additions & 0 deletions sumdb/tlog/tile_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package tlog

import (
"testing"
)

// FuzzParseTilePath tests that ParseTilePath never crashes
func FuzzParseTilePath(f *testing.F) {
f.Add("tile/4/0/001")
f.Add("tile/4/0/001.p/5")
f.Add("tile/3/5/x123/x456/078")
f.Add("tile/3/5/x123/x456/078.p/2")
f.Add("tile/1/0/x003/x057/500")
f.Add("tile/3/5/123/456/078")
f.Add("tile/3/-1/123/456/078")
f.Add("tile/1/data/x003/x057/500")
f.Fuzz(func(t *testing.T, path string) {
ParseTilePath(path)
})
}

0 comments on commit 69aa7ac

Please sign in to comment.