Skip to content

Commit a148065

Browse files
authored
Merge pull request #25 from arduino/integrate_executils
Integrate process handling helpers
2 parents 225b25c + c15697a commit a148065

21 files changed

+581
-171
lines changed

.github/workflows/test.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Install Go
2828
uses: actions/setup-go@v2
2929
with:
30-
go-version: "1.16"
30+
go-version: "1.21"
3131

3232
- name: Run unit tests
3333
run: go test -v ./... -coverprofile=coverage_unit.txt

go.mod

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
module github.com/arduino/go-paths-helper
22

3-
go 1.12
3+
go 1.21
44

55
require (
66
github.com/pkg/errors v0.9.1
7-
github.com/stretchr/testify v1.3.0
7+
github.com/stretchr/testify v1.8.4
8+
)
9+
10+
require (
11+
github.com/davecgh/go-spew v1.1.1 // indirect
12+
github.com/pmezard/go-difflib v1.0.0 // indirect
13+
gopkg.in/yaml.v3 v3.0.1 // indirect
814
)

go.sum

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
33
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
44
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
55
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
66
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
8-
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
9-
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
7+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
8+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
9+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
10+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
11+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
12+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

gzip_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ import (
3636
)
3737

3838
func TestGzipGunzip(t *testing.T) {
39-
zipped := New("_testdata", "test.txt.gz")
40-
unzipped := New("_testdata", "test.txt")
39+
zipped := New("testdata", "fileset", "test.txt.gz")
40+
unzipped := New("testdata", "fileset", "test.txt")
4141

4242
tmp, err := MkTempDir("", "")
4343
require.NoError(t, err)

paths_test.go

+47-47
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ func TestPathNew(t *testing.T) {
5757
}
5858

5959
func TestPath(t *testing.T) {
60-
testPath := New("_testdata")
61-
pathEqualsTo(t, "_testdata", testPath)
60+
testPath := New("testdata", "fileset")
61+
pathEqualsTo(t, "testdata/fileset", testPath)
6262
isDir, err := testPath.IsDirCheck()
6363
require.True(t, isDir)
6464
require.NoError(t, err)
@@ -71,7 +71,7 @@ func TestPath(t *testing.T) {
7171
require.False(t, testPath.NotExist())
7272

7373
folderPath := testPath.Join("folder")
74-
pathEqualsTo(t, "_testdata/folder", folderPath)
74+
pathEqualsTo(t, "testdata/fileset/folder", folderPath)
7575
isDir, err = folderPath.IsDirCheck()
7676
require.True(t, isDir)
7777
require.NoError(t, err)
@@ -85,7 +85,7 @@ func TestPath(t *testing.T) {
8585
require.False(t, folderPath.NotExist())
8686

8787
filePath := testPath.Join("file")
88-
pathEqualsTo(t, "_testdata/file", filePath)
88+
pathEqualsTo(t, "testdata/fileset/file", filePath)
8989
isDir, err = filePath.IsDirCheck()
9090
require.False(t, isDir)
9191
require.NoError(t, err)
@@ -98,7 +98,7 @@ func TestPath(t *testing.T) {
9898
require.False(t, filePath.NotExist())
9999

100100
anotherFilePath := filePath.Join("notexistent")
101-
pathEqualsTo(t, "_testdata/file/notexistent", anotherFilePath)
101+
pathEqualsTo(t, "testdata/fileset/file/notexistent", anotherFilePath)
102102
isDir, err = anotherFilePath.IsDirCheck()
103103
require.False(t, isDir)
104104
require.Error(t, err)
@@ -113,32 +113,32 @@ func TestPath(t *testing.T) {
113113
list, err := folderPath.ReadDir()
114114
require.NoError(t, err)
115115
require.Len(t, list, 4)
116-
pathEqualsTo(t, "_testdata/folder/.hidden", list[0])
117-
pathEqualsTo(t, "_testdata/folder/file2", list[1])
118-
pathEqualsTo(t, "_testdata/folder/file3", list[2])
119-
pathEqualsTo(t, "_testdata/folder/subfolder", list[3])
116+
pathEqualsTo(t, "testdata/fileset/folder/.hidden", list[0])
117+
pathEqualsTo(t, "testdata/fileset/folder/file2", list[1])
118+
pathEqualsTo(t, "testdata/fileset/folder/file3", list[2])
119+
pathEqualsTo(t, "testdata/fileset/folder/subfolder", list[3])
120120

121121
list2 := list.Clone()
122122
list2.FilterDirs()
123123
require.Len(t, list2, 1)
124-
pathEqualsTo(t, "_testdata/folder/subfolder", list2[0])
124+
pathEqualsTo(t, "testdata/fileset/folder/subfolder", list2[0])
125125

126126
list2 = list.Clone()
127127
list2.FilterOutHiddenFiles()
128128
require.Len(t, list2, 3)
129-
pathEqualsTo(t, "_testdata/folder/file2", list2[0])
130-
pathEqualsTo(t, "_testdata/folder/file3", list2[1])
131-
pathEqualsTo(t, "_testdata/folder/subfolder", list2[2])
129+
pathEqualsTo(t, "testdata/fileset/folder/file2", list2[0])
130+
pathEqualsTo(t, "testdata/fileset/folder/file3", list2[1])
131+
pathEqualsTo(t, "testdata/fileset/folder/subfolder", list2[2])
132132

133133
list2 = list.Clone()
134134
list2.FilterOutPrefix("file")
135135
require.Len(t, list2, 2)
136-
pathEqualsTo(t, "_testdata/folder/.hidden", list2[0])
137-
pathEqualsTo(t, "_testdata/folder/subfolder", list2[1])
136+
pathEqualsTo(t, "testdata/fileset/folder/.hidden", list2[0])
137+
pathEqualsTo(t, "testdata/fileset/folder/subfolder", list2[1])
138138
}
139139

140140
func TestResetStatCacheWhenFollowingSymlink(t *testing.T) {
141-
testdata := New("_testdata")
141+
testdata := New("testdata", "fileset")
142142
files, err := testdata.ReadDir()
143143
require.NoError(t, err)
144144
for _, file := range files {
@@ -208,7 +208,7 @@ func TestIsInsideDir(t *testing.T) {
208208
}
209209

210210
func TestReadFileAsLines(t *testing.T) {
211-
lines, err := New("_testdata/anotherFile").ReadFileAsLines()
211+
lines, err := New("testdata/fileset/anotherFile").ReadFileAsLines()
212212
require.NoError(t, err)
213213
require.Len(t, lines, 4)
214214
require.Equal(t, "line 1", lines[0])
@@ -226,7 +226,7 @@ func TestCopyDir(t *testing.T) {
226226
require.NoError(t, err)
227227
defer tmp.RemoveAll()
228228

229-
src := New("_testdata")
229+
src := New("testdata", "fileset")
230230
err = src.CopyDirTo(tmp.Join("dest"))
231231
require.NoError(t, err, "copying dir")
232232

@@ -264,45 +264,45 @@ func TestParents(t *testing.T) {
264264
}
265265

266266
func TestFilterDirs(t *testing.T) {
267-
testPath := New("_testdata")
267+
testPath := New("testdata", "fileset")
268268

269269
list, err := testPath.ReadDir()
270270
require.NoError(t, err)
271271
require.Len(t, list, 6)
272272

273-
pathEqualsTo(t, "_testdata/anotherFile", list[0])
274-
pathEqualsTo(t, "_testdata/file", list[1])
275-
pathEqualsTo(t, "_testdata/folder", list[2])
276-
pathEqualsTo(t, "_testdata/symlinktofolder", list[3])
277-
pathEqualsTo(t, "_testdata/test.txt", list[4])
278-
pathEqualsTo(t, "_testdata/test.txt.gz", list[5])
273+
pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
274+
pathEqualsTo(t, "testdata/fileset/file", list[1])
275+
pathEqualsTo(t, "testdata/fileset/folder", list[2])
276+
pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[3])
277+
pathEqualsTo(t, "testdata/fileset/test.txt", list[4])
278+
pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[5])
279279

280280
list.FilterDirs()
281281
require.Len(t, list, 2)
282-
pathEqualsTo(t, "_testdata/folder", list[0])
283-
pathEqualsTo(t, "_testdata/symlinktofolder", list[1])
282+
pathEqualsTo(t, "testdata/fileset/folder", list[0])
283+
pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[1])
284284
}
285285

286286
func TestFilterOutDirs(t *testing.T) {
287-
testPath := New("_testdata")
287+
testPath := New("testdata", "fileset")
288288

289289
list, err := testPath.ReadDir()
290290
require.NoError(t, err)
291291
require.Len(t, list, 6)
292292

293-
pathEqualsTo(t, "_testdata/anotherFile", list[0])
294-
pathEqualsTo(t, "_testdata/file", list[1])
295-
pathEqualsTo(t, "_testdata/folder", list[2])
296-
pathEqualsTo(t, "_testdata/symlinktofolder", list[3])
297-
pathEqualsTo(t, "_testdata/test.txt", list[4])
298-
pathEqualsTo(t, "_testdata/test.txt.gz", list[5])
293+
pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
294+
pathEqualsTo(t, "testdata/fileset/file", list[1])
295+
pathEqualsTo(t, "testdata/fileset/folder", list[2])
296+
pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[3])
297+
pathEqualsTo(t, "testdata/fileset/test.txt", list[4])
298+
pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[5])
299299

300300
list.FilterOutDirs()
301301
require.Len(t, list, 4)
302-
pathEqualsTo(t, "_testdata/anotherFile", list[0])
303-
pathEqualsTo(t, "_testdata/file", list[1])
304-
pathEqualsTo(t, "_testdata/test.txt", list[2])
305-
pathEqualsTo(t, "_testdata/test.txt.gz", list[3])
302+
pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
303+
pathEqualsTo(t, "testdata/fileset/file", list[1])
304+
pathEqualsTo(t, "testdata/fileset/test.txt", list[2])
305+
pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[3])
306306
}
307307

308308
func TestEquivalentPaths(t *testing.T) {
@@ -314,8 +314,8 @@ func TestEquivalentPaths(t *testing.T) {
314314
require.True(t, wd.Join("file1").EquivalentTo(New("file1", "abc", "..")))
315315

316316
if runtime.GOOS == "windows" {
317-
q := New("_testdata", "anotherFile")
318-
r := New("_testdata", "ANOTHE~1")
317+
q := New("testdata", "fileset", "anotherFile")
318+
r := New("testdata", "fileset", "ANOTHE~1")
319319
require.True(t, q.EquivalentTo(r))
320320
require.True(t, r.EquivalentTo(q))
321321
}
@@ -325,15 +325,15 @@ func TestCanonicalize(t *testing.T) {
325325
wd, err := Getwd()
326326
require.NoError(t, err)
327327

328-
p := New("_testdata", "anotherFile").Canonical()
329-
require.Equal(t, wd.Join("_testdata", "anotherFile").String(), p.String())
328+
p := New("testdata", "fileset", "anotherFile").Canonical()
329+
require.Equal(t, wd.Join("testdata", "fileset", "anotherFile").String(), p.String())
330330

331-
p = New("_testdata", "nonexistentFile").Canonical()
332-
require.Equal(t, wd.Join("_testdata", "nonexistentFile").String(), p.String())
331+
p = New("testdata", "fileset", "nonexistentFile").Canonical()
332+
require.Equal(t, wd.Join("testdata", "fileset", "nonexistentFile").String(), p.String())
333333

334334
if runtime.GOOS == "windows" {
335-
q := New("_testdata", "ANOTHE~1").Canonical()
336-
require.Equal(t, wd.Join("_testdata", "anotherFile").String(), q.String())
335+
q := New("testdata", "fileset", "ANOTHE~1").Canonical()
336+
require.Equal(t, wd.Join("testdata", "fileset", "anotherFile").String(), q.String())
337337

338338
r := New("c:\\").Canonical()
339339
require.Equal(t, "C:\\", r.String())
@@ -371,7 +371,7 @@ func TestRelativeTo(t *testing.T) {
371371
}
372372

373373
func TestWriteToTempFile(t *testing.T) {
374-
tmpDir := New("_testdata", "tmp")
374+
tmpDir := New("testdata", "fileset", "tmp")
375375
err := tmpDir.MkdirAll()
376376
require.NoError(t, err)
377377
defer tmpDir.RemoveAll()

0 commit comments

Comments
 (0)