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"}