Skip to content

Commit c7fb302

Browse files
Juneezeecgwalters
authored andcommitted
mantle: use os.ReadDir for lightweight directory reading
`os.ReadDir` was added in Go 1.16 as part of the deprecation of `ioutil` package. It is a more efficient implementation than `ioutil.ReadDir` as stated here https://pkg.go.dev/io/ioutil#ReadDir. Signed-off-by: Eng Zer Jun <[email protected]>
1 parent 53980df commit c7fb302

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

mantle/cmd/kola/switchkernel.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package main
1717
import (
1818
"encoding/base64"
1919
"fmt"
20-
"io/ioutil"
2120
"os"
2221
"regexp"
2322
"strings"
@@ -151,7 +150,7 @@ func runSwitchKernel(cmd *cobra.Command, args []string) error {
151150
func dropRpmFilesAll(m platform.Machine, localPath string) error {
152151
fmt.Println("Dropping RT Kernel RPMs...")
153152
re := regexp.MustCompile(`^kernel-rt-.*\.rpm$`)
154-
files, err := ioutil.ReadDir(localPath)
153+
files, err := os.ReadDir(localPath)
155154
if err != nil {
156155
return err
157156
}

mantle/kola/harness.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,23 +1138,28 @@ func testIsDenyListed(testname string) (bool, error) {
11381138
}
11391139

11401140
// registerTestDir parses one test directory and registers it as a test
1141-
func registerTestDir(dir, testprefix string, children []os.FileInfo) error {
1141+
func registerTestDir(dir, testprefix string, children []os.DirEntry) error {
11421142
var dependencydir string
11431143
var meta externalTestMeta
1144-
var err error
11451144
userdata := conf.EmptyIgnition()
11461145
executables := []string{}
11471146
for _, c := range children {
11481147
fpath := filepath.Join(dir, c.Name())
1148+
1149+
info, err := c.Info()
1150+
if err != nil {
1151+
return errors.Wrapf(err, "c.Info %s", c.Name())
1152+
}
1153+
11491154
// follow symlinks; oddly, there's no IsSymlink()
1150-
if c.Mode()&os.ModeSymlink != 0 {
1151-
c, err = os.Stat(fpath)
1155+
if info.Mode()&os.ModeSymlink != 0 {
1156+
info, err = os.Stat(fpath)
11521157
if err != nil {
11531158
return errors.Wrapf(err, "stat %s", fpath)
11541159
}
11551160
}
1156-
isreg := c.Mode().IsRegular()
1157-
if isreg && (c.Mode().Perm()&0001) > 0 {
1161+
isreg := info.Mode().IsRegular()
1162+
if isreg && (info.Mode().Perm()&0001) > 0 {
11581163
executables = append(executables, filepath.Join(dir, c.Name()))
11591164
} else if isreg && c.Name() == "config.ign" {
11601165
v, err := ioutil.ReadFile(filepath.Join(dir, c.Name()))
@@ -1183,23 +1188,23 @@ func registerTestDir(dir, testprefix string, children []os.FileInfo) error {
11831188
}
11841189
} else if c.IsDir() && c.Name() == kolaExtBinDataName {
11851190
dependencydir = filepath.Join(dir, c.Name())
1186-
} else if c.Mode()&os.ModeSymlink != 0 && c.Name() == kolaExtBinDataName {
1191+
} else if info.Mode()&os.ModeSymlink != 0 && c.Name() == kolaExtBinDataName {
11871192
target, err := filepath.EvalSymlinks(filepath.Join(dir, c.Name()))
11881193
if err != nil {
11891194
return err
11901195
}
11911196
dependencydir = target
11921197
} else if c.IsDir() {
11931198
subdir := filepath.Join(dir, c.Name())
1194-
subchildren, err := ioutil.ReadDir(subdir)
1199+
subchildren, err := os.ReadDir(subdir)
11951200
if err != nil {
11961201
return err
11971202
}
11981203
subprefix := fmt.Sprintf("%s.%s", testprefix, c.Name())
11991204
if err := registerTestDir(subdir, subprefix, subchildren); err != nil {
12001205
return err
12011206
}
1202-
} else if isreg && (c.Mode().Perm()&0001) == 0 {
1207+
} else if isreg && (info.Mode().Perm()&0001) == 0 {
12031208
file, err := os.Open(filepath.Join(dir, c.Name()))
12041209
if err != nil {
12051210
return errors.Wrapf(err, "opening %s", c.Name())
@@ -1238,7 +1243,7 @@ func registerTestDir(dir, testprefix string, children []os.FileInfo) error {
12381243

12391244
func RegisterExternalTestsWithPrefix(dir, prefix string) error {
12401245
testsdir := filepath.Join(dir, "tests/kola")
1241-
children, err := ioutil.ReadDir(testsdir)
1246+
children, err := os.ReadDir(testsdir)
12421247
if err != nil {
12431248
if os.IsNotExist(err) {
12441249
// The directory doesn't exist.. Skip registering tests

mantle/util/repo.go

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

1717
import (
1818
"fmt"
19-
"io/ioutil"
2019
"os"
2120
"path/filepath"
2221
"strings"
@@ -67,7 +66,7 @@ func GetLocalFastBuildQemu() (string, error) {
6766
}
6867
return "", err
6968
}
70-
ents, err := ioutil.ReadDir(fastBuildCosaDir)
69+
ents, err := os.ReadDir(fastBuildCosaDir)
7170
if err != nil {
7271
return "", err
7372
}

0 commit comments

Comments
 (0)