diff options
author | Bryan Mills <bcmills@google.com> | 2022-01-12 02:22:10 +0000 |
---|---|---|
committer | Bryan Mills <bcmills@google.com> | 2022-01-12 15:53:47 +0000 |
commit | 6e8b7e4f4213afb67a91050cb2d71347d73145aa (patch) | |
tree | 24fd9d9ebe8860cf044762c0b50060120c4fa6ae /src/archive | |
parent | 3d3f5d912b776424e50be276bc3a4ae02bf8d143 (diff) | |
download | go-6e8b7e4f4213afb67a91050cb2d71347d73145aa.tar.gz go-6e8b7e4f4213afb67a91050cb2d71347d73145aa.zip |
Revert "all: add a handful of fuzz targets"
This reverts CL 352109.
Reason for revert: causing OOM failures on several builders, and may cause OOMs for end users with small machines as well.
Change-Id: I58308d09919969d5a6512ee5cee6aa5c4af6769b
Reviewed-on: https://go-review.googlesource.com/c/go/+/377934
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
Trust: Katie Hockman <katie@golang.org>
Diffstat (limited to 'src/archive')
-rw-r--r-- | src/archive/tar/fuzz_test.go | 97 | ||||
-rw-r--r-- | src/archive/zip/fuzz_test.go | 81 |
2 files changed, 0 insertions, 178 deletions
diff --git a/src/archive/tar/fuzz_test.go b/src/archive/tar/fuzz_test.go deleted file mode 100644 index 069602aa21..0000000000 --- a/src/archive/tar/fuzz_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2021 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. - -//go:build !android -// +build !android - -package tar - -import ( - "bytes" - "internal/testenv" - "io" - "os" - "path/filepath" - "strings" - "testing" -) - -var constrainedBuilders = map[string]bool{ - "windows-386-2012": true, - "windows-386-2008": true, - "js-wasm": true, - "android-amd64-emu": true, -} - -func FuzzReader(f *testing.F) { - if constrainedBuilders[testenv.Builder()] { - f.Skip("builder is memory constrained") - } - testdata, err := os.ReadDir("testdata") - if err != nil { - f.Fatalf("failed to read testdata directory: %s", err) - } - for _, de := range testdata { - if de.IsDir() { - continue - } - if strings.Contains(de.Name(), "big") { - // skip large archives so we don't kill builders with restricted - // memory - continue - } - b, err := os.ReadFile(filepath.Join("testdata", de.Name())) - if err != nil { - f.Fatalf("failed to read testdata: %s", err) - } - f.Add(b) - } - - f.Fuzz(func(t *testing.T, b []byte) { - r := NewReader(bytes.NewReader(b)) - type file struct { - header *Header - content []byte - } - files := []file{} - for { - hdr, err := r.Next() - if err == io.EOF { - break - } - if err != nil { - return - } - buf := bytes.NewBuffer(nil) - if _, err := io.Copy(buf, r); err != nil { - continue - } - files = append(files, file{header: hdr, content: buf.Bytes()}) - } - - // If we were unable to read anything out of the archive don't - // bother trying to roundtrip it. - if len(files) == 0 { - return - } - - out := bytes.NewBuffer(nil) - w := NewWriter(out) - for _, f := range files { - if err := w.WriteHeader(f.header); err != nil { - t.Fatalf("unable to write previously parsed header: %s", err) - } - if _, err := w.Write(f.content); err != nil { - t.Fatalf("unable to write previously parsed content: %s", err) - } - } - if err := w.Close(); err != nil { - t.Fatalf("Unable to write archive: %s", err) - } - - // TODO: We may want to check if the archive roundtrips. This would require - // taking into account addition of the two zero trailer blocks that Writer.Close - // appends. - }) -} diff --git a/src/archive/zip/fuzz_test.go b/src/archive/zip/fuzz_test.go deleted file mode 100644 index 7dffde69bf..0000000000 --- a/src/archive/zip/fuzz_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2021 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 zip - -import ( - "bytes" - "io" - "os" - "path/filepath" - "testing" -) - -func FuzzReader(f *testing.F) { - testdata, err := os.ReadDir("testdata") - if err != nil { - f.Fatalf("failed to read testdata directory: %s", err) - } - for _, de := range testdata { - if de.IsDir() { - continue - } - b, err := os.ReadFile(filepath.Join("testdata", de.Name())) - if err != nil { - f.Fatalf("failed to read testdata: %s", err) - } - f.Add(b) - } - - f.Fuzz(func(t *testing.T, b []byte) { - r, err := NewReader(bytes.NewReader(b), int64(len(b))) - if err != nil { - return - } - - type file struct { - header *FileHeader - content []byte - } - files := []file{} - - for _, f := range r.File { - fr, err := f.Open() - if err != nil { - continue - } - content, err := io.ReadAll(fr) - if err != nil { - continue - } - files = append(files, file{header: &f.FileHeader, content: content}) - if _, err := r.Open(f.Name); err != nil { - continue - } - } - - // If we were unable to read anything out of the archive don't - // bother trying to roundtrip it. - if len(files) == 0 { - return - } - - w := NewWriter(io.Discard) - for _, f := range files { - ww, err := w.CreateHeader(f.header) - if err != nil { - t.Fatalf("unable to write previously parsed header: %s", err) - } - if _, err := ww.Write(f.content); err != nil { - t.Fatalf("unable to write previously parsed content: %s", err) - } - } - - if err := w.Close(); err != nil { - t.Fatalf("Unable to write archive: %s", err) - } - - // TODO: We may want to check if the archive roundtrips. - }) -} |