all: replace io/ioutil with io and os package This PR replaces the deprecated in Go 1.17 `io/ioutil` package with `io` and `os` packages. Changes are the same as in [CL 430799](https://go.dev/cl/430799) but with test fixes. Change-Id: I69095e5d62b10879fd273305876fd7498803705d GitHub-Last-Rev: 28cdff9b8c971556da0006d955d60551930cebde GitHub-Pull-Request: golang/mod#17 Reviewed-on: https://go-review.googlesource.com/c/mod/+/462278 Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com>
diff --git a/gosumcheck/main.go b/gosumcheck/main.go index c1d8fc2..668b46c 100644 --- a/gosumcheck/main.go +++ b/gosumcheck/main.go
@@ -34,7 +34,6 @@ "flag" "fmt" "io" - "io/ioutil" "log" "net/http" "os" @@ -84,7 +83,7 @@ client.SetGONOSUMDB(env) for _, arg := range flag.Args() { - data, err := ioutil.ReadFile(arg) + data, err := os.ReadFile(arg) if err != nil { log.Fatal(err) } @@ -201,7 +200,7 @@ if resp.StatusCode != 200 { return nil, fmt.Errorf("GET %v: %v", target, resp.Status) } - data, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1<<20)) + data, err := io.ReadAll(io.LimitReader(resp.Body, 1<<20)) if err != nil { return nil, err }
diff --git a/modfile/read_test.go b/modfile/read_test.go index e43f693..82c778d 100644 --- a/modfile/read_test.go +++ b/modfile/read_test.go
@@ -7,7 +7,6 @@ import ( "bytes" "fmt" - "io/ioutil" "os" "os/exec" "path/filepath" @@ -43,13 +42,13 @@ // It reads the file named in, reformats it, and compares // the result to the file named out. func testPrint(t *testing.T, in, out string) { - data, err := ioutil.ReadFile(in) + data, err := os.ReadFile(in) if err != nil { t.Error(err) return } - golden, err := ioutil.ReadFile(out) + golden, err := os.ReadFile(out) if err != nil { t.Error(err) return @@ -157,7 +156,7 @@ } t.Run(name, func(t *testing.T) { t.Parallel() - data, err := ioutil.ReadFile(out) + data, err := os.ReadFile(out) if err != nil { t.Fatal(err) } @@ -212,7 +211,7 @@ } if strings.HasSuffix(out, ".in") { - golden, err := ioutil.ReadFile(strings.TrimSuffix(out, ".in") + ".golden") + golden, err := os.ReadFile(strings.TrimSuffix(out, ".in") + ".golden") if err != nil { t.Fatal(err) } @@ -346,14 +345,14 @@ // diff returns the output of running diff on b1 and b2. func diff(b1, b2 []byte) (data []byte, err error) { - f1, err := ioutil.TempFile("", "testdiff") + f1, err := os.CreateTemp("", "testdiff") if err != nil { return nil, err } defer os.Remove(f1.Name()) defer f1.Close() - f2, err := ioutil.TempFile("", "testdiff") + f2, err := os.CreateTemp("", "testdiff") if err != nil { return nil, err }
diff --git a/modfile/work_test.go b/modfile/work_test.go index 332df97..46115a5 100644 --- a/modfile/work_test.go +++ b/modfile/work_test.go
@@ -6,7 +6,7 @@ import ( "bytes" - "io/ioutil" + "os" "path/filepath" "strings" "testing" @@ -308,7 +308,7 @@ name := filepath.Base(out) t.Run(name, func(t *testing.T) { t.Parallel() - data, err := ioutil.ReadFile(out) + data, err := os.ReadFile(out) if err != nil { t.Fatal(err) } @@ -360,7 +360,7 @@ } if strings.HasSuffix(out, ".in") { - golden, err := ioutil.ReadFile(strings.TrimSuffix(out, ".in") + ".golden") + golden, err := os.ReadFile(strings.TrimSuffix(out, ".in") + ".golden") if err != nil { t.Fatal(err) }
diff --git a/sumdb/dirhash/hash_test.go b/sumdb/dirhash/hash_test.go index f3c504d..08beb85 100644 --- a/sumdb/dirhash/hash_test.go +++ b/sumdb/dirhash/hash_test.go
@@ -10,7 +10,6 @@ "encoding/base64" "fmt" "io" - "io/ioutil" "os" "path/filepath" "strings" @@ -29,7 +28,7 @@ func TestHash1(t *testing.T) { files := []string{"xyz", "abc"} open := func(name string) (io.ReadCloser, error) { - return ioutil.NopCloser(strings.NewReader("data for " + name)), nil + return io.NopCloser(strings.NewReader("data for " + name)), nil } want := htop("h1", fmt.Sprintf("%s %s\n%s %s\n", h("data for abc"), "abc", h("data for xyz"), "xyz")) out, err := Hash1(files, open) @@ -47,15 +46,11 @@ } func TestHashDir(t *testing.T) { - dir, err := ioutil.TempDir("", "dirhash-test-") - if err != nil { + dir := t.TempDir() + if err := os.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0666); err != nil { t.Fatal(err) } - defer os.RemoveAll(dir) - if err := ioutil.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0666); err != nil { - t.Fatal(err) - } - if err := ioutil.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0666); err != nil { + if err := os.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0666); err != nil { t.Fatal(err) } want := htop("h1", fmt.Sprintf("%s %s\n%s %s\n", h("data for abc"), "prefix/abc", h("data for xyz"), "prefix/xyz")) @@ -69,11 +64,10 @@ } func TestHashZip(t *testing.T) { - f, err := ioutil.TempFile("", "dirhash-test-") + f, err := os.CreateTemp(t.TempDir(), "dirhash-test-") if err != nil { t.Fatal(err) } - defer os.Remove(f.Name()) defer f.Close() z := zip.NewWriter(f) @@ -106,21 +100,17 @@ func TestDirFiles(t *testing.T) { t.Run("valid directory with files", func(t *testing.T) { - dir, err := ioutil.TempDir("", "dirfiles-test-") - if err != nil { + dir := t.TempDir() + if err := os.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0666); err != nil { t.Fatal(err) } - defer os.RemoveAll(dir) - if err := ioutil.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0666); err != nil { - t.Fatal(err) - } - if err := ioutil.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0666); err != nil { + if err := os.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0666); err != nil { t.Fatal(err) } if err := os.Mkdir(filepath.Join(dir, "subdir"), 0777); err != nil { t.Fatal(err) } - if err := ioutil.WriteFile(filepath.Join(dir, "subdir", "xyz"), []byte("data for subdir xyz"), 0666); err != nil { + if err := os.WriteFile(filepath.Join(dir, "subdir", "xyz"), []byte("data for subdir xyz"), 0666); err != nil { t.Fatal(err) } prefix := "foo/bar@v2.3.4"
diff --git a/sumdb/tlog/ct_test.go b/sumdb/tlog/ct_test.go index c2d9aeb..f8c364b 100644 --- a/sumdb/tlog/ct_test.go +++ b/sumdb/tlog/ct_test.go
@@ -7,7 +7,7 @@ import ( "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "net/url" "os" @@ -80,7 +80,7 @@ t.Fatal(err) } defer resp.Body.Close() - data, err := ioutil.ReadAll(resp.Body) + data, err := io.ReadAll(resp.Body) if err != nil { t.Fatal(err) }
diff --git a/zip/zip.go b/zip/zip.go index 0328705..c5eca4b 100644 --- a/zip/zip.go +++ b/zip/zip.go
@@ -51,7 +51,6 @@ "errors" "fmt" "io" - "io/ioutil" "os" "os/exec" "path" @@ -753,7 +752,7 @@ // Check that the directory is empty. Don't create it yet in case there's // an error reading the zip. - if files, _ := ioutil.ReadDir(dir); len(files) > 0 { + if files, _ := os.ReadDir(dir); len(files) > 0 { return fmt.Errorf("target directory %v exists and is not empty", dir) }
diff --git a/zip/zip_test.go b/zip/zip_test.go index 89d5555..84a3ecd 100644 --- a/zip/zip_test.go +++ b/zip/zip_test.go
@@ -12,7 +12,6 @@ "errors" "fmt" "io" - "io/ioutil" "os" "os/exec" "path" @@ -128,7 +127,7 @@ if err := os.MkdirAll(filepath.Dir(filePath), 0777); err != nil { return "", err } - if err := ioutil.WriteFile(filePath, f.Data, 0666); err != nil { + if err := os.WriteFile(filePath, f.Data, 0666); err != nil { return "", err } } @@ -174,12 +173,12 @@ func (f fakeFile) Lstat() (os.FileInfo, error) { return fakeFileInfo{f}, nil } func (f fakeFile) Open() (io.ReadCloser, error) { if f.data != nil { - return ioutil.NopCloser(bytes.NewReader(f.data)), nil + return io.NopCloser(bytes.NewReader(f.data)), nil } if f.size >= uint64(modzip.MaxZipFile<<1) { return nil, fmt.Errorf("cannot open fakeFile of size %d", f.size) } - return ioutil.NopCloser(io.LimitReader(zeroReader{}, int64(f.size))), nil + return io.NopCloser(io.LimitReader(zeroReader{}, int64(f.size))), nil } type fakeFileInfo struct { @@ -399,13 +398,13 @@ func TestCreate(t *testing.T) { testDir := filepath.FromSlash("testdata/create") - testInfos, err := ioutil.ReadDir(testDir) + testEntries, err := os.ReadDir(testDir) if err != nil { t.Fatal(err) } - for _, testInfo := range testInfos { - testInfo := testInfo - base := filepath.Base(testInfo.Name()) + for _, testEntry := range testEntries { + testEntry := testEntry + base := filepath.Base(testEntry.Name()) if filepath.Ext(base) != ".txt" { continue } @@ -413,22 +412,19 @@ t.Parallel() // Load the test. - testPath := filepath.Join(testDir, testInfo.Name()) + testPath := filepath.Join(testDir, testEntry.Name()) test, err := readTest(testPath) if err != nil { t.Fatal(err) } // Write zip to temporary file. - tmpZip, err := ioutil.TempFile("", "TestCreate-*.zip") + tmpZip, err := os.CreateTemp(t.TempDir(), "TestCreate-*.zip") if err != nil { t.Fatal(err) } tmpZipPath := tmpZip.Name() - defer func() { - tmpZip.Close() - os.Remove(tmpZipPath) - }() + defer tmpZip.Close() m := module.Version{Path: test.path, Version: test.version} files := make([]modzip.File, len(test.archive.Files)) for i, tf := range test.archive.Files { @@ -465,13 +461,13 @@ func TestCreateFromDir(t *testing.T) { testDir := filepath.FromSlash("testdata/create_from_dir") - testInfos, err := ioutil.ReadDir(testDir) + testEntries, err := os.ReadDir(testDir) if err != nil { t.Fatal(err) } - for _, testInfo := range testInfos { - testInfo := testInfo - base := filepath.Base(testInfo.Name()) + for _, testEntry := range testEntries { + testEntry := testEntry + base := filepath.Base(testEntry.Name()) if filepath.Ext(base) != ".txt" { continue } @@ -479,7 +475,7 @@ t.Parallel() // Load the test. - testPath := filepath.Join(testDir, testInfo.Name()) + testPath := filepath.Join(testDir, testEntry.Name()) test, err := readTest(testPath) if err != nil { t.Fatal(err) @@ -492,15 +488,12 @@ } // Create zip from the directory. - tmpZip, err := ioutil.TempFile("", "TestCreateFromDir-*.zip") + tmpZip, err := os.CreateTemp(t.TempDir(), "TestCreateFromDir-*.zip") if err != nil { t.Fatal(err) } tmpZipPath := tmpZip.Name() - defer func() { - tmpZip.Close() - os.Remove(tmpZipPath) - }() + defer tmpZip.Close() m := module.Version{Path: test.path, Version: test.version} if err := modzip.CreateFromDir(tmpZip, m, tmpDir); err != nil { if test.wantErr == "" { @@ -561,7 +554,7 @@ t.Fatal(err) } goModData := []byte("module example.com/m\n\ngo 1.13\n") - if err := ioutil.WriteFile(filepath.Join(vendorDir, "go.mod"), goModData, 0666); err != nil { + if err := os.WriteFile(filepath.Join(vendorDir, "go.mod"), goModData, 0666); err != nil { t.Fatal(err) } return vendorDir @@ -570,22 +563,14 @@ }, } { t.Run(test.desc, func(t *testing.T) { - tmpDir, err := ioutil.TempDir("", "TestCreateFromDirSpecial-"+test.desc) - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDir) - dir := test.setup(t, tmpDir) + dir := test.setup(t, t.TempDir()) - tmpZipFile, err := ioutil.TempFile("", "TestCreateFromDir-*.zip") + tmpZipFile, err := os.CreateTemp(t.TempDir(), "TestCreateFromDir-*.zip") if err != nil { t.Fatal(err) } tmpZipPath := tmpZipFile.Name() - defer func() { - tmpZipFile.Close() - os.Remove(tmpZipPath) - }() + defer tmpZipFile.Close() m := module.Version{Path: "example.com/m", Version: "v1.0.0"} if err := modzip.CreateFromDir(tmpZipFile, m, dir); err != nil { @@ -606,18 +591,18 @@ func TestUnzip(t *testing.T) { testDir := filepath.FromSlash("testdata/unzip") - testInfos, err := ioutil.ReadDir(testDir) + testEntries, err := os.ReadDir(testDir) if err != nil { t.Fatal(err) } - for _, testInfo := range testInfos { - base := filepath.Base(testInfo.Name()) + for _, testEntry := range testEntries { + base := filepath.Base(testEntry.Name()) if filepath.Ext(base) != ".txt" { continue } t.Run(base[:len(base)-len(".txt")], func(t *testing.T) { // Load the test. - testPath := filepath.Join(testDir, testInfo.Name()) + testPath := filepath.Join(testDir, testEntry.Name()) test, err := readTest(testPath) if err != nil { t.Fatal(err) @@ -630,11 +615,7 @@ } // Extract to a temporary directory. - tmpDir, err := ioutil.TempDir("", "TestUnzip") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDir) + tmpDir := t.TempDir() m := module.Version{Path: test.path, Version: test.version} if err := modzip.Unzip(tmpDir, m, tmpZipPath); err != nil { if test.wantErr == "" { @@ -790,7 +771,7 @@ if wantCreateErr == "" { wantCreateErr = test.wantErr } - if err := modzip.Create(ioutil.Discard, sizeLimitVersion, test.files); err == nil && wantCreateErr != "" { + if err := modzip.Create(io.Discard, sizeLimitVersion, test.files); err == nil && wantCreateErr != "" { t.Fatalf("Create: unexpected success; want error containing %q", wantCreateErr) } else if err != nil && wantCreateErr == "" { t.Fatalf("Create: got error %q; want success", err) @@ -809,17 +790,12 @@ test := test t.Run(test.desc, func(t *testing.T) { t.Parallel() - tmpZipFile, err := ioutil.TempFile("", "TestUnzipSizeLimits-*.zip") + tmpZipFile, err := os.CreateTemp(t.TempDir(), "TestUnzipSizeLimits-*.zip") if err != nil { t.Fatal(err) } tmpZipPath := tmpZipFile.Name() - defer func() { - tmpZipFile.Close() - if err := os.Remove(tmpZipPath); err != nil { - t.Errorf("removing temp zip file: %v", err) - } - }() + defer tmpZipFile.Close() zw := zip.NewWriter(tmpZipFile) prefix := fmt.Sprintf("%s@%s/", sizeLimitVersion.Path, sizeLimitVersion.Version) @@ -845,16 +821,6 @@ t.Fatal(err) } - tmpDir, err := ioutil.TempDir("", "TestUnzipSizeLimits") - if err != nil { - t.Fatal(err) - } - defer func() { - if err := os.RemoveAll(tmpDir); err != nil { - t.Errorf("removing temp dir: %v", err) - } - }() - wantCheckZipErr := test.wantCheckZipErr if wantCheckZipErr == "" { wantCheckZipErr = test.wantErr @@ -875,7 +841,7 @@ if wantUnzipErr == "" { wantUnzipErr = test.wantErr } - if err := modzip.Unzip(tmpDir, sizeLimitVersion, tmpZipPath); err == nil && wantUnzipErr != "" { + if err := modzip.Unzip(t.TempDir(), sizeLimitVersion, tmpZipPath); err == nil && wantUnzipErr != "" { t.Fatalf("Unzip: unexpected success; want error containing %q", wantUnzipErr) } else if err != nil && wantUnzipErr == "" { t.Fatalf("Unzip: got error %q; want success", err) @@ -975,27 +941,18 @@ test := test t.Run(test.desc, func(t *testing.T) { t.Parallel() - tmpZipFile, err := ioutil.TempFile("", "TestUnzipSizeLimitsSpecial-*.zip") + tmpZipFile, err := os.CreateTemp(t.TempDir(), "TestUnzipSizeLimitsSpecial-*.zip") if err != nil { t.Fatal(err) } tmpZipPath := tmpZipFile.Name() - defer func() { - tmpZipFile.Close() - os.Remove(tmpZipPath) - }() + defer tmpZipFile.Close() test.writeZip(t, tmpZipFile) if err := tmpZipFile.Close(); err != nil { t.Fatal(err) } - tmpDir, err := ioutil.TempDir("", "TestUnzipSizeLimitsSpecial") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDir) - want := func() string { s := fmt.Sprintf("%q", test.wantErr1) if test.wantErr2 != "" { @@ -1004,7 +961,7 @@ return s } - if err := modzip.Unzip(tmpDir, test.m, tmpZipPath); err == nil && test.wantErr1 != "" { + if err := modzip.Unzip(t.TempDir(), test.m, tmpZipPath); err == nil && test.wantErr1 != "" { t.Fatalf("unexpected success; want error containing %s", want()) } else if err != nil && test.wantErr1 == "" { t.Fatalf("got error %q; want success", err) @@ -1328,15 +1285,12 @@ }) } - tmpModZipFile, err := ioutil.TempFile("", "TestVCS-*.zip") + tmpModZipFile, err := os.CreateTemp(t.TempDir(), "TestVCS-*.zip") if err != nil { t.Fatal(err) } tmpModZipPath := tmpModZipFile.Name() - defer func() { - tmpModZipFile.Close() - os.Remove(tmpModZipPath) - }() + defer tmpModZipFile.Close() h := sha256.New() w := io.MultiWriter(tmpModZipFile, h) if err := modzip.Create(w, test.m, files); err != nil { @@ -1401,8 +1355,7 @@ } // Create an archive. - zipPath := filepath.Join(t.TempDir(), "vcs.zip") - tmpZipFile, err := os.Create(zipPath) + tmpZipFile, err := os.CreateTemp(t.TempDir(), "downloadVCSZip-*.zip") if err != nil { return "", nil, err } @@ -1442,13 +1395,12 @@ } // Create an archive. - tmpZipFile, err := ioutil.TempFile("", "downloadVCSZip-*.zip") + tmpZipFile, err := os.CreateTemp(t.TempDir(), "downloadVCSZip-*.zip") if err != nil { return "", nil, err } tmpZipPath := tmpZipFile.Name() tmpZipFile.Close() - t.Cleanup(func() { os.Remove(tmpZipPath) }) args := []string{"archive", "-t", "zip", "--no-decode", "-r", rev, "--prefix=prefix/"} if subdir != "" { args = append(args, "-I", subdir+"/**") @@ -1702,15 +1654,11 @@ } // Create zip from the directory. - tmpZip, err := ioutil.TempFile("", "TestCreateFromDir-*.zip") + tmpZip, err := os.CreateTemp(t.TempDir(), "TestCreateFromDir-*.zip") if err != nil { t.Fatal(err) } - tmpZipPath := tmpZip.Name() - defer func() { - tmpZip.Close() - os.Remove(tmpZipPath) - }() + defer tmpZip.Close() m := module.Version{Path: "example.com/foo/bar", Version: "v0.0.1"} @@ -1746,15 +1694,11 @@ gitInit(t, tmpDir) // Create zip from the directory. - tmpZip, err := ioutil.TempFile("", "TestCreateFromDir-*.zip") + tmpZip, err := os.CreateTemp(t.TempDir(), "TestCreateFromDir-*.zip") if err != nil { t.Fatal(err) } - tmpZipPath := tmpZip.Name() - defer func() { - tmpZip.Close() - os.Remove(tmpZipPath) - }() + defer tmpZip.Close() m := module.Version{Path: "example.com/foo/bar", Version: "v0.0.1"}