Skip to content

Commit df1ec17

Browse files
author
Luca Bianconi
committed
refactor: extend paths helper use
1 parent 241d798 commit df1ec17

File tree

3 files changed

+28
-42
lines changed

3 files changed

+28
-42
lines changed

Diff for: buildcache/build_cache_test.go

+14-26
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package buildcache
1717

1818
import (
19-
"os"
2019
"testing"
2120
"time"
2221

@@ -25,36 +24,29 @@ import (
2524
)
2625

2726
func Test_UpdateLastUsedFileNotExisting(t *testing.T) {
28-
2927
testBuildDir := paths.New(t.TempDir(), "sketches", "sketch-xxx")
30-
err := os.MkdirAll(testBuildDir.String(), 0770)
31-
require.Nil(t, err)
28+
require.NoError(t, testBuildDir.MkdirAll())
3229
timeBeforeUpdating := time.Unix(0, 0)
3330
requireCorrectUpdate(t, testBuildDir, timeBeforeUpdating)
3431
}
3532

3633
func Test_UpdateLastUsedFileExisting(t *testing.T) {
37-
3834
testBuildDir := paths.New(t.TempDir(), "sketches", "sketch-xxx")
39-
err := os.MkdirAll(testBuildDir.String(), 0770)
40-
require.Nil(t, err)
35+
require.NoError(t, testBuildDir.MkdirAll())
4136

4237
// create the file
43-
preExistingFile := testBuildDir.Join(lastUsedFileName).String()
44-
err = paths.New(preExistingFile).WriteFile([]byte{})
45-
require.Nil(t, err)
38+
preExistingFile := testBuildDir.Join(lastUsedFileName)
39+
require.NoError(t, preExistingFile.WriteFile([]byte{}))
4640
timeBeforeUpdating := time.Now().Add(-time.Second)
47-
os.Chtimes(preExistingFile, time.Now(), timeBeforeUpdating)
41+
preExistingFile.Chtimes(time.Now(), timeBeforeUpdating)
4842
requireCorrectUpdate(t, testBuildDir, timeBeforeUpdating)
4943
}
5044

5145
func requireCorrectUpdate(t *testing.T, dir *paths.Path, prevModTime time.Time) {
52-
err := Used(dir)
53-
require.Nil(t, err)
46+
require.NoError(t, Used(dir))
5447
expectedFile := dir.Join(lastUsedFileName)
55-
fileInfo, err := os.Stat(expectedFile.String())
48+
fileInfo, err := expectedFile.Stat()
5649
require.Nil(t, err)
57-
5850
require.GreaterOrEqual(t, fileInfo.ModTime(), prevModTime)
5951
}
6052

@@ -70,22 +62,18 @@ func TestPurge(t *testing.T) {
7062

7163
// create the metadata files
7264
for dirPath, lastUsedTime := range lastUsedTimesByDirPath {
73-
err := os.MkdirAll(dirPath.Canonical().String(), 0770)
74-
require.Nil(t, err)
75-
infoFilePath := dirPath.Join(lastUsedFileName).Canonical().String()
76-
err = paths.New(infoFilePath).WriteFile([]byte{})
77-
require.Nil(t, err)
65+
require.NoError(t, dirPath.MkdirAll())
66+
infoFilePath := dirPath.Join(lastUsedFileName).Canonical()
67+
require.NoError(t, infoFilePath.WriteFile([]byte{}))
7868
// make sure access time does not matter
7969
accesstime := time.Now()
80-
err = os.Chtimes(infoFilePath, accesstime, lastUsedTime)
81-
require.Nil(t, err)
70+
require.NoError(t, infoFilePath.Chtimes(accesstime, lastUsedTime))
8271
}
8372

8473
Purge(dirToPurge, ttl)
8574

86-
fileinfo, err := os.Stat(dirToPurge.Join("fresh").String())
75+
files, err := dirToPurge.Join("fresh").Stat()
8776
require.Nil(t, err)
88-
require.True(t, fileinfo.IsDir())
89-
_, err = os.Stat(dirToPurge.Join("old").String())
90-
require.ErrorIs(t, err, os.ErrNotExist)
77+
require.True(t, files.IsDir())
78+
require.True(t, dirToPurge.Exist())
9179
}

Diff for: buildcache/directory_cache.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package buildcache
1717

1818
import (
19-
"os"
2019
"time"
2120

2221
"github.com/arduino/go-paths-helper"
@@ -43,7 +42,7 @@ func (dc *directoryCache) isExpired(key string, ttl time.Duration) bool {
4342
}
4443

4544
func (dc *directoryCache) modTime(key string) (time.Time, error) {
46-
fileInfo, err := os.Stat(dc.basePath().Join(key, lastUsedFileName).String())
45+
fileInfo, err := dc.basePath().Join(key, lastUsedFileName).Stat()
4746
if err != nil {
4847
return time.Unix(0, 0), err
4948
}
@@ -59,7 +58,10 @@ func (dc *directoryCache) GetOrCreate(key string, value time.Time) (time.Time, e
5958
}
6059

6160
subDir := dc.basePath().Join(key)
62-
os.MkdirAll(subDir.String(), 0770)
61+
err = subDir.MkdirAll()
62+
if err != nil || existing {
63+
return modTime, err
64+
}
6365
err = subDir.Join(lastUsedFileName).WriteFile([]byte{})
6466
if err != nil || existing {
6567
return modTime, err
@@ -68,16 +70,16 @@ func (dc *directoryCache) GetOrCreate(key string, value time.Time) (time.Time, e
6870
}
6971

7072
func (dc *directoryCache) Purge() error {
71-
files, err := os.ReadDir(dc.basePath().String())
73+
files, err := dc.basePath().ReadDir()
7274
if err != nil {
7375
return err
7476
}
7577
for _, file := range files {
76-
if file.IsDir() && dc.isExpired(file.Name(), dc.ttl) {
77-
subDir := dc.basePath().Join(file.Name())
78-
modTime, _ := dc.modTime(file.Name())
78+
if file.IsDir() && dc.isExpired(file.Base(), dc.ttl) {
79+
subDir := dc.basePath().Join(file.Base())
80+
modTime, _ := dc.modTime(file.Base())
7981
logrus.Tracef(`Purging cache directory "%s". Expired by %s\n`, subDir, (time.Since(modTime) - dc.ttl))
80-
err := os.RemoveAll(subDir.String())
82+
err := subDir.RemoveAll()
8183

8284
if err != nil {
8385
logrus.Tracef(`Error while pruning cache directory "%s".\n%s\n`, subDir, errors.WithStack(err))

Diff for: internal/integrationtest/compile_1/compile_test.go

+4-8
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,12 @@ func compileWithCachePurgeNeeded(t *testing.T, env *integrationtest.Environment,
124124

125125
// purge case: hold file too old
126126
oldDir1 := baseDir.Join("test_old_sketch_1")
127-
err := os.MkdirAll(oldDir1.String(), 0770)
128-
require.Nil(t, err)
129-
err = oldDir1.Join(".last-used").WriteFile([]byte{})
130-
require.Nil(t, err)
131-
err = os.Chtimes(oldDir1.Join(".last-used").String(), time.Now(), time.Unix(0, 0))
132-
require.Nil(t, err)
127+
require.NoError(t, os.MkdirAll(oldDir1.String(), 0770))
128+
require.NoError(t, oldDir1.Join(".last-used").WriteFile([]byte{}))
129+
require.NoError(t, os.Chtimes(oldDir1.Join(".last-used").String(), time.Now(), time.Unix(0, 0)))
133130
// purge case: hold file not existing
134131
oldDir2 := baseDir.Join("test_old_sketch_2")
135-
err = os.MkdirAll(oldDir2.String(), 0770)
136-
require.Nil(t, err)
132+
require.NoError(t, os.MkdirAll(oldDir2.String(), 0770))
137133

138134
defer os.RemoveAll(oldDir1.String())
139135
defer os.RemoveAll(oldDir2.String())

0 commit comments

Comments
 (0)