From 376e2f07f37ef0257d7075fe3d2acd278b769e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5vard=20Anda=20Estensen?= Date: Mon, 16 May 2022 17:29:41 +0200 Subject: [PATCH 1/2] all: replace non-trivial uses of ioutil with os --- accounts/abi/bind/bind_test.go | 5 ++--- accounts/keystore/file_cache.go | 13 ++++++++----- cmd/geth/accountcmd_test.go | 3 +-- cmd/geth/version_check_test.go | 3 +-- core/rawdb/freezer.go | 3 +-- eth/tracers/internal/tracetest/calltrace_test.go | 5 ++--- internal/build/util.go | 3 +-- rpc/server_test.go | 3 +-- signer/core/signed_data_test.go | 5 ++--- 9 files changed, 19 insertions(+), 24 deletions(-) diff --git a/accounts/abi/bind/bind_test.go b/accounts/abi/bind/bind_test.go index 29b2099e3f08..87e8187f09ca 100644 --- a/accounts/abi/bind/bind_test.go +++ b/accounts/abi/bind/bind_test.go @@ -18,7 +18,6 @@ package bind import ( "fmt" - "io/ioutil" "os" "os/exec" "path/filepath" @@ -1986,7 +1985,7 @@ func TestGolangBindings(t *testing.T) { if err != nil { t.Fatalf("test %d: failed to generate binding: %v", i, err) } - if err = ioutil.WriteFile(filepath.Join(pkg, strings.ToLower(tt.name)+".go"), []byte(bind), 0600); err != nil { + if err = os.WriteFile(filepath.Join(pkg, strings.ToLower(tt.name)+".go"), []byte(bind), 0600); err != nil { t.Fatalf("test %d: failed to write binding: %v", i, err) } // Generate the test file with the injected test code @@ -2002,7 +2001,7 @@ func TestGolangBindings(t *testing.T) { %s } `, tt.imports, tt.name, tt.tester) - if err := ioutil.WriteFile(filepath.Join(pkg, strings.ToLower(tt.name)+"_test.go"), []byte(code), 0600); err != nil { + if err := os.WriteFile(filepath.Join(pkg, strings.ToLower(tt.name)+"_test.go"), []byte(code), 0600); err != nil { t.Fatalf("test %d: failed to write tests: %v", i, err) } }) diff --git a/accounts/keystore/file_cache.go b/accounts/keystore/file_cache.go index 8b309321d370..409646f8753e 100644 --- a/accounts/keystore/file_cache.go +++ b/accounts/keystore/file_cache.go @@ -17,7 +17,6 @@ package keystore import ( - "io/ioutil" "os" "path/filepath" "strings" @@ -41,7 +40,7 @@ func (fc *fileCache) scan(keyDir string) (mapset.Set, mapset.Set, mapset.Set, er t0 := time.Now() // List all the failes from the keystore folder - files, err := ioutil.ReadDir(keyDir) + files, err := os.ReadDir(keyDir) if err != nil { return nil, nil, nil, err } @@ -65,7 +64,11 @@ func (fc *fileCache) scan(keyDir string) (mapset.Set, mapset.Set, mapset.Set, er // Gather the set of all and fresly modified files all.Add(path) - modified := fi.ModTime() + info, err := fi.Info() + if err != nil { + return nil, nil, nil, err + } + modified := info.ModTime() if modified.After(fc.lastMod) { mods.Add(path) } @@ -89,13 +92,13 @@ func (fc *fileCache) scan(keyDir string) (mapset.Set, mapset.Set, mapset.Set, er } // nonKeyFile ignores editor backups, hidden files and folders/symlinks. -func nonKeyFile(fi os.FileInfo) bool { +func nonKeyFile(fi os.DirEntry) bool { // Skip editor backups and UNIX-style hidden files. if strings.HasSuffix(fi.Name(), "~") || strings.HasPrefix(fi.Name(), ".") { return true } // Skip misc special files, directories (yes, symlinks too). - if fi.IsDir() || fi.Mode()&os.ModeType != 0 { + if fi.IsDir() || fi.Type()&os.ModeType != 0 { return true } return false diff --git a/cmd/geth/accountcmd_test.go b/cmd/geth/accountcmd_test.go index 6b3a56211c15..0c22e8c9bf57 100644 --- a/cmd/geth/accountcmd_test.go +++ b/cmd/geth/accountcmd_test.go @@ -17,7 +17,6 @@ package main import ( - "io/ioutil" "os" "path/filepath" "runtime" @@ -163,7 +162,7 @@ Password: {{.InputLine "foo"}} Address: {d4584b5f6229b7be90727b0fc8c6b91bb427821f} `) - files, err := ioutil.ReadDir(filepath.Join(geth.Datadir, "keystore")) + files, err := os.ReadDir(filepath.Join(geth.Datadir, "keystore")) if len(files) != 1 { t.Errorf("expected one key file in keystore directory, found %d files (error: %v)", len(files), err) } diff --git a/cmd/geth/version_check_test.go b/cmd/geth/version_check_test.go index 69d5e65c9c91..b841ace5b2f9 100644 --- a/cmd/geth/version_check_test.go +++ b/cmd/geth/version_check_test.go @@ -19,7 +19,6 @@ package main import ( "encoding/json" "fmt" - "io/ioutil" "os" "path/filepath" "regexp" @@ -55,7 +54,7 @@ func testVerification(t *testing.T, pubkey, sigdir string) { t.Fatal(err) } // Signatures, with and without comments, both trusted and untrusted - files, err := ioutil.ReadDir(sigdir) + files, err := os.ReadDir(sigdir) if err != nil { t.Fatal(err) } diff --git a/core/rawdb/freezer.go b/core/rawdb/freezer.go index dca5b6aad6b6..63fd8cdcf86f 100644 --- a/core/rawdb/freezer.go +++ b/core/rawdb/freezer.go @@ -19,7 +19,6 @@ package rawdb import ( "errors" "fmt" - "io/ioutil" "math" "os" "path/filepath" @@ -472,7 +471,7 @@ func (f *Freezer) MigrateTable(kind string, convert convertLegacyFn) error { if err := newTable.Close(); err != nil { return err } - files, err := ioutil.ReadDir(migrationPath) + files, err := os.ReadDir(migrationPath) if err != nil { return err } diff --git a/eth/tracers/internal/tracetest/calltrace_test.go b/eth/tracers/internal/tracetest/calltrace_test.go index b715d8ee9add..d4c25ee78103 100644 --- a/eth/tracers/internal/tracetest/calltrace_test.go +++ b/eth/tracers/internal/tracetest/calltrace_test.go @@ -18,7 +18,6 @@ package tracetest import ( "encoding/json" - "io/ioutil" "math/big" "os" "path/filepath" @@ -136,7 +135,7 @@ func TestCallTracerNative(t *testing.T) { } func testCallTracer(tracerName string, dirPath string, t *testing.T) { - files, err := ioutil.ReadDir(filepath.Join("testdata", dirPath)) + files, err := os.ReadDir(filepath.Join("testdata", dirPath)) if err != nil { t.Fatalf("failed to retrieve tracer test suite: %v", err) } @@ -241,7 +240,7 @@ func camel(str string) string { return strings.Join(pieces, "") } func BenchmarkTracers(b *testing.B) { - files, err := ioutil.ReadDir(filepath.Join("testdata", "call_tracer")) + files, err := os.ReadDir(filepath.Join("testdata", "call_tracer")) if err != nil { b.Fatalf("failed to retrieve tracer test suite: %v", err) } diff --git a/internal/build/util.go b/internal/build/util.go index 974d7001c3af..654349fac307 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -24,7 +24,6 @@ import ( "go/parser" "go/token" "io" - "io/ioutil" "log" "os" "os/exec" @@ -177,7 +176,7 @@ func UploadSFTP(identityFile, host, dir string, files []string) error { // package paths. func FindMainPackages(dir string) []string { var commands []string - cmds, err := ioutil.ReadDir(dir) + cmds, err := os.ReadDir(dir) if err != nil { log.Fatal(err) } diff --git a/rpc/server_test.go b/rpc/server_test.go index 46fa06d95279..d09d31634bee 100644 --- a/rpc/server_test.go +++ b/rpc/server_test.go @@ -20,7 +20,6 @@ import ( "bufio" "bytes" "io" - "io/ioutil" "net" "os" "path/filepath" @@ -53,7 +52,7 @@ func TestServerRegisterName(t *testing.T) { } func TestServer(t *testing.T) { - files, err := ioutil.ReadDir("testdata") + files, err := os.ReadDir("testdata") if err != nil { t.Fatal("where'd my testdata go?") } diff --git a/signer/core/signed_data_test.go b/signer/core/signed_data_test.go index 7c518b3c94b3..7d5661e7e6a8 100644 --- a/signer/core/signed_data_test.go +++ b/signer/core/signed_data_test.go @@ -21,7 +21,6 @@ import ( "context" "encoding/json" "fmt" - "io/ioutil" "os" "path" "strings" @@ -354,7 +353,7 @@ func sign(typedData apitypes.TypedData) ([]byte, []byte, error) { } func TestJsonFiles(t *testing.T) { - testfiles, err := ioutil.ReadDir("testdata/") + testfiles, err := os.ReadDir("testdata/") if err != nil { t.Fatalf("failed reading files: %v", err) } @@ -389,7 +388,7 @@ func TestJsonFiles(t *testing.T) { // crashes or hangs. func TestFuzzerFiles(t *testing.T) { corpusdir := path.Join("testdata", "fuzzing") - testfiles, err := ioutil.ReadDir(corpusdir) + testfiles, err := os.ReadDir(corpusdir) if err != nil { t.Fatalf("failed reading files: %v", err) } From f9377bfb6f0361dd4f1339970730d763828abfde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5vard=20Anda=20Estensen?= Date: Tue, 17 May 2022 10:14:31 +0200 Subject: [PATCH 2/2] Update accounts/keystore/file_cache.go Co-authored-by: Martin Holst Swende --- accounts/keystore/file_cache.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts/keystore/file_cache.go b/accounts/keystore/file_cache.go index 409646f8753e..b3ecf8946b53 100644 --- a/accounts/keystore/file_cache.go +++ b/accounts/keystore/file_cache.go @@ -98,7 +98,7 @@ func nonKeyFile(fi os.DirEntry) bool { return true } // Skip misc special files, directories (yes, symlinks too). - if fi.IsDir() || fi.Type()&os.ModeType != 0 { + if fi.IsDir() || !fi.Type().IsRegular() { return true } return false