Skip to content

Commit 301d1b7

Browse files
abhinavmvdan
authored andcommitted
all: Move away from ioutil
It's been a while since io/ioutil has been deprecated. Go 1.22 was just released, and the go.mod specifies 'go 1.20'. This should be safe to remove at this point. The change was largely automated, minus the `t.TempDir()` calls inside test files, which was done manually.
1 parent 8e66eb9 commit 301d1b7

File tree

10 files changed

+35
-59
lines changed

10 files changed

+35
-59
lines changed

cmd/testscript/main.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"errors"
99
"flag"
1010
"fmt"
11-
"io/ioutil"
11+
"io"
1212
"os"
1313
"os/exec"
1414
"path/filepath"
@@ -72,7 +72,7 @@ func mainerr() (retErr error) {
7272
return err
7373
}
7474

75-
td, err := ioutil.TempDir("", "testscript")
75+
td, err := os.MkdirTemp("", "testscript")
7676
if err != nil {
7777
return fmt.Errorf("unable to create temp dir: %v", err)
7878
}
@@ -171,7 +171,7 @@ func (tr *testRunner) run(runDir, filename string) error {
171171
}
172172

173173
if filename == "-" {
174-
byts, err := ioutil.ReadAll(os.Stdin)
174+
byts, err := io.ReadAll(os.Stdin)
175175
if err != nil {
176176
return fmt.Errorf("failed to read from stdin: %v", err)
177177
}
@@ -204,7 +204,7 @@ func (tr *testRunner) run(runDir, filename string) error {
204204

205205
scriptFile := filepath.Join(runDir, "script.txtar")
206206

207-
if err := ioutil.WriteFile(scriptFile, txtar.Format(&script), 0o666); err != nil {
207+
if err := os.WriteFile(scriptFile, txtar.Format(&script), 0o666); err != nil {
208208
return fmt.Errorf("failed to write script for %v: %v", renderFilename(filename), err)
209209
}
210210

@@ -309,7 +309,7 @@ func (tr *testRunner) run(runDir, filename string) error {
309309
// Parse the (potentially) updated scriptFile as an archive, then merge
310310
// with the original archive, retaining order. Then write the archive
311311
// back to the source file
312-
source, err := ioutil.ReadFile(scriptFile)
312+
source, err := os.ReadFile(scriptFile)
313313
if err != nil {
314314
return fmt.Errorf("failed to read from script file %v for -update: %v", scriptFile, err)
315315
}
@@ -323,7 +323,7 @@ func (tr *testRunner) run(runDir, filename string) error {
323323
ar.Files[i] = newF
324324
}
325325
}
326-
if err := ioutil.WriteFile(filename, txtar.Format(ar), 0o666); err != nil {
326+
if err := os.WriteFile(filename, txtar.Format(ar), 0o666); err != nil {
327327
return fmt.Errorf("failed to write script back to %v for -update: %v", renderFilename(filename), err)
328328
}
329329
}

dirhash/hash_test.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"encoding/base64"
1111
"fmt"
1212
"io"
13-
"io/ioutil"
1413
"os"
1514
"path/filepath"
1615
"strings"
@@ -29,7 +28,7 @@ func htop(k string, s string) string {
2928
func TestHash1(t *testing.T) {
3029
files := []string{"xyz", "abc"}
3130
open := func(name string) (io.ReadCloser, error) {
32-
return ioutil.NopCloser(strings.NewReader("data for " + name)), nil
31+
return io.NopCloser(strings.NewReader("data for " + name)), nil
3332
}
3433
want := htop("h1", fmt.Sprintf("%s %s\n%s %s\n", h("data for abc"), "abc", h("data for xyz"), "xyz"))
3534
out, err := Hash1(files, open)
@@ -47,15 +46,15 @@ func TestHash1(t *testing.T) {
4746
}
4847

4948
func TestHashDir(t *testing.T) {
50-
dir, err := ioutil.TempDir("", "dirhash-test-")
49+
dir, err := os.MkdirTemp("", "dirhash-test-")
5150
if err != nil {
5251
t.Fatal(err)
5352
}
5453
defer os.RemoveAll(dir)
55-
if err := ioutil.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0o666); err != nil {
54+
if err := os.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0o666); err != nil {
5655
t.Fatal(err)
5756
}
58-
if err := ioutil.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0o666); err != nil {
57+
if err := os.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0o666); err != nil {
5958
t.Fatal(err)
6059
}
6160
want := htop("h1", fmt.Sprintf("%s %s\n%s %s\n", h("data for abc"), "prefix/abc", h("data for xyz"), "prefix/xyz"))
@@ -69,7 +68,7 @@ func TestHashDir(t *testing.T) {
6968
}
7069

7170
func TestHashZip(t *testing.T) {
72-
f, err := ioutil.TempFile("", "dirhash-test-")
71+
f, err := os.CreateTemp("", "dirhash-test-")
7372
if err != nil {
7473
t.Fatal(err)
7574
}
@@ -105,21 +104,21 @@ func TestHashZip(t *testing.T) {
105104
}
106105

107106
func TestDirFiles(t *testing.T) {
108-
dir, err := ioutil.TempDir("", "dirfiles-test-")
107+
dir, err := os.MkdirTemp("", "dirfiles-test-")
109108
if err != nil {
110109
t.Fatal(err)
111110
}
112111
defer os.RemoveAll(dir)
113-
if err := ioutil.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0o666); err != nil {
112+
if err := os.WriteFile(filepath.Join(dir, "xyz"), []byte("data for xyz"), 0o666); err != nil {
114113
t.Fatal(err)
115114
}
116-
if err := ioutil.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0o666); err != nil {
115+
if err := os.WriteFile(filepath.Join(dir, "abc"), []byte("data for abc"), 0o666); err != nil {
117116
t.Fatal(err)
118117
}
119118
if err := os.Mkdir(filepath.Join(dir, "subdir"), 0o777); err != nil {
120119
t.Fatal(err)
121120
}
122-
if err := ioutil.WriteFile(filepath.Join(dir, "subdir", "xyz"), []byte("data for subdir xyz"), 0o666); err != nil {
121+
if err := os.WriteFile(filepath.Join(dir, "subdir", "xyz"), []byte("data for subdir xyz"), 0o666); err != nil {
123122
t.Fatal(err)
124123
}
125124
prefix := "foo/[email protected]"

imports/scan.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package imports
66

77
import (
88
"fmt"
9-
"io/ioutil"
109
"os"
1110
"path/filepath"
1211
"sort"
@@ -15,14 +14,14 @@ import (
1514
)
1615

1716
func ScanDir(dir string, tags map[string]bool) ([]string, []string, error) {
18-
infos, err := ioutil.ReadDir(dir)
17+
infos, err := os.ReadDir(dir)
1918
if err != nil {
2019
return nil, nil, err
2120
}
2221
var files []string
2322
for _, info := range infos {
2423
name := info.Name()
25-
if info.Mode().IsRegular() && !strings.HasPrefix(name, "_") && strings.HasSuffix(name, ".go") && MatchFile(name, tags) {
24+
if info.Type().IsRegular() && !strings.HasPrefix(name, "_") && strings.HasSuffix(name, ".go") && MatchFile(name, tags) {
2625
files = append(files, filepath.Join(dir, name))
2726
}
2827
}

renameio/renameio.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package renameio
1010
import (
1111
"bytes"
1212
"io"
13-
"io/ioutil"
1413
"os"
1514
"path/filepath"
1615
)
@@ -35,7 +34,7 @@ func WriteFile(filename string, data []byte) (err error) {
3534
// WriteToFile is a variant of WriteFile that accepts the data as an io.Reader
3635
// instead of a slice.
3736
func WriteToFile(filename string, data io.Reader) (err error) {
38-
f, err := ioutil.TempFile(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
37+
f, err := os.CreateTemp(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
3938
if err != nil {
4039
return err
4140
}

testenv/testenv_windows.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package testenv
66

77
import (
8-
"io/ioutil"
98
"os"
109
"path/filepath"
1110
"sync"
@@ -16,7 +15,7 @@ var symlinkOnce sync.Once
1615
var winSymlinkErr error
1716

1817
func initWinHasSymlink() {
19-
tmpdir, err := ioutil.TempDir("", "symtest")
18+
tmpdir, err := os.MkdirTemp("", "symtest")
2019
if err != nil {
2120
panic("failed to create temp directory: " + err.Error())
2221
}

testscript/cmd.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"bufio"
99
"bytes"
1010
"fmt"
11-
"io/ioutil"
1211
"os"
1312
"os/exec"
1413
"path/filepath"
@@ -120,7 +119,7 @@ func (ts *TestScript) doCmdCmp(neg bool, args []string, env bool) {
120119
text1 := ts.ReadFile(name1)
121120

122121
absName2 := ts.MkAbs(name2)
123-
data, err := ioutil.ReadFile(absName2)
122+
data, err := os.ReadFile(absName2)
124123
ts.Check(err)
125124
text2 := string(data)
126125
if env {
@@ -191,14 +190,14 @@ func (ts *TestScript) cmdCp(neg bool, args []string) {
191190
info, err := os.Stat(src)
192191
ts.Check(err)
193192
mode = info.Mode() & 0o777
194-
data, err = ioutil.ReadFile(src)
193+
data, err = os.ReadFile(src)
195194
ts.Check(err)
196195
}
197196
targ := dst
198197
if dstDir {
199198
targ = filepath.Join(dst, filepath.Base(src))
200199
}
201-
ts.Check(ioutil.WriteFile(targ, data, mode))
200+
ts.Check(os.WriteFile(targ, data, mode))
202201
}
203202
}
204203

@@ -337,11 +336,11 @@ func (ts *TestScript) cmdUnquote(neg bool, args []string) {
337336
}
338337
for _, arg := range args {
339338
file := ts.MkAbs(arg)
340-
data, err := ioutil.ReadFile(file)
339+
data, err := os.ReadFile(file)
341340
ts.Check(err)
342341
data, err = txtar.Unquote(data)
343342
ts.Check(err)
344-
err = ioutil.WriteFile(file, data, 0o666)
343+
err = os.WriteFile(file, data, 0o666)
345344
ts.Check(err)
346345
}
347346
}
@@ -482,11 +481,11 @@ func (ts *TestScript) cmdUNIX2DOS(neg bool, args []string) {
482481
}
483482
for _, arg := range args {
484483
filename := ts.MkAbs(arg)
485-
data, err := ioutil.ReadFile(filename)
484+
data, err := os.ReadFile(filename)
486485
ts.Check(err)
487486
dosData, err := unix2DOS(data)
488487
ts.Check(err)
489-
if err := ioutil.WriteFile(filename, dosData, 0o666); err != nil {
488+
if err := os.WriteFile(filename, dosData, 0o666); err != nil {
490489
ts.Fatalf("%s: %v", filename, err)
491490
}
492491
}
@@ -632,7 +631,7 @@ func scriptMatch(ts *TestScript, neg bool, args []string, text, name string) {
632631
isGrep := name == "grep"
633632
if isGrep {
634633
name = args[1] // for error messages
635-
data, err := ioutil.ReadFile(ts.MkAbs(args[1]))
634+
data, err := os.ReadFile(ts.MkAbs(args[1]))
636635
ts.Check(err)
637636
text = string(data)
638637
}

testscript/exe.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package testscript
66

77
import (
88
"io"
9-
"io/ioutil"
109
"log"
1110
"os"
1211
"path/filepath"
@@ -56,7 +55,7 @@ func RunMain(m TestingM, commands map[string]func() int) (exitCode int) {
5655
// test binary by "go test".
5756

5857
// Set up all commands in a directory, added in $PATH.
59-
tmpdir, err := ioutil.TempDir("", "testscript-main")
58+
tmpdir, err := os.MkdirTemp("", "testscript-main")
6059
if err != nil {
6160
log.Printf("could not set up temporary directory: %v", err)
6261
return 2

testscript/testscript_test.go

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"errors"
1010
"flag"
1111
"fmt"
12-
"io/ioutil"
1312
"os"
1413
"os/exec"
1514
"os/signal"
@@ -49,7 +48,7 @@ func signalCatcher() int {
4948
signal.Notify(c, os.Interrupt)
5049
// Create a file so that the test can know that
5150
// we will catch the signal.
52-
if err := ioutil.WriteFile("catchsignal", nil, 0o666); err != nil {
51+
if err := os.WriteFile("catchsignal", nil, 0o666); err != nil {
5352
fmt.Println(err)
5453
return 1
5554
}
@@ -90,16 +89,10 @@ func TestMain(m *testing.M) {
9089
}
9190

9291
func TestCRLFInput(t *testing.T) {
93-
td, err := ioutil.TempDir("", "")
94-
if err != nil {
95-
t.Fatalf("failed to create TempDir: %v", err)
96-
}
97-
defer func() {
98-
os.RemoveAll(td)
99-
}()
92+
td := t.TempDir()
10093
tf := filepath.Join(td, "script.txt")
10194
contents := []byte("exists output.txt\r\n-- output.txt --\r\noutput contents")
102-
if err := ioutil.WriteFile(tf, contents, 0o644); err != nil {
95+
if err := os.WriteFile(tf, contents, 0o644); err != nil {
10396
t.Fatalf("failed to write to %v: %v", tf, err)
10497
}
10598
t.Run("_", func(t *testing.T) {
@@ -272,7 +265,7 @@ func TestScripts(t *testing.T) {
272265
"echoandexit": echoandexit,
273266
},
274267
Setup: func(env *Env) error {
275-
infos, err := ioutil.ReadDir(env.WorkDir)
268+
infos, err := os.ReadDir(env.WorkDir)
276269
if err != nil {
277270
return fmt.Errorf("cannot read workdir: %v", err)
278271
}
@@ -350,11 +343,7 @@ func TestTestwork(t *testing.T) {
350343

351344
// TestWorkdirRoot tests that a non zero value in Params.WorkdirRoot is honoured
352345
func TestWorkdirRoot(t *testing.T) {
353-
td, err := ioutil.TempDir("", "")
354-
if err != nil {
355-
t.Fatalf("failed to create temp dir: %v", err)
356-
}
357-
defer os.RemoveAll(td)
346+
td := t.TempDir()
358347
params := Params{
359348
Dir: filepath.Join("testdata", "nothing"),
360349
WorkdirRoot: td,

txtar/archive.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
"bytes"
3636
"errors"
3737
"fmt"
38-
"io/ioutil"
3938
"os"
4039
"path/filepath"
4140
"strings"
@@ -60,7 +59,7 @@ func Format(a *Archive) []byte {
6059

6160
// ParseFile parses the named file as an archive.
6261
func ParseFile(file string) (*Archive, error) {
63-
data, err := ioutil.ReadFile(file)
62+
data, err := os.ReadFile(file)
6463
if err != nil {
6564
return nil, err
6665
}

txtar/archive_test.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ package txtar
77
import (
88
"bytes"
99
"fmt"
10-
"io/ioutil"
11-
"os"
1210
"reflect"
1311
"testing"
1412
)
@@ -81,11 +79,7 @@ func shortArchive(a *Archive) string {
8179
}
8280

8381
func TestWrite(t *testing.T) {
84-
td, err := ioutil.TempDir("", "")
85-
if err != nil {
86-
t.Fatalf("failed to create temp dir: %v", err)
87-
}
88-
defer os.RemoveAll(td)
82+
td := t.TempDir()
8983

9084
good := &Archive{Files: []File{File{Name: "good.txt"}}}
9185
if err := Write(good, td); err != nil {

0 commit comments

Comments
 (0)