aboutsummaryrefslogtreecommitdiff
path: root/src/archive
diff options
context:
space:
mode:
authorBryan Mills <bcmills@google.com>2022-01-12 02:22:10 +0000
committerBryan Mills <bcmills@google.com>2022-01-12 15:53:47 +0000
commit6e8b7e4f4213afb67a91050cb2d71347d73145aa (patch)
tree24fd9d9ebe8860cf044762c0b50060120c4fa6ae /src/archive
parent3d3f5d912b776424e50be276bc3a4ae02bf8d143 (diff)
downloadgo-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.go97
-rw-r--r--src/archive/zip/fuzz_test.go81
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.
- })
-}