Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f09a475

Browse files
polish legacy test
1 parent af86c0f commit f09a475

File tree

10 files changed

+143
-644
lines changed

10 files changed

+143
-644
lines changed

‎arduino/builder/linker.go‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,10 @@ func (b *Builder) Link() error {
3333
return nil
3434
}
3535

36-
// TODO can we remove this multiple assignations?
37-
objectFilesSketch := b.buildArtifacts.sketchObjectFiles
38-
objectFilesLibraries := b.buildArtifacts.librariesObjectFiles
39-
objectFilesCore := b.buildArtifacts.coreObjectsFiles
40-
4136
objectFiles := paths.NewPathList()
42-
objectFiles.AddAll(objectFilesSketch)
43-
objectFiles.AddAll(objectFilesLibraries)
44-
objectFiles.AddAll(objectFilesCore)
37+
objectFiles.AddAll(b.buildArtifacts.sketchObjectFiles)
38+
objectFiles.AddAll(b.buildArtifacts.librariesObjectFiles)
39+
objectFiles.AddAll(b.buildArtifacts.coreObjectsFiles)
4540

4641
coreDotARelPath, err := b.buildPath.RelTo(b.buildArtifacts.coreArchiveFilePath)
4742
if err != nil {

‎arduino/builder/utils/utils_test.go‎

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@
1616
package utils
1717

1818
import (
19+
"os"
1920
"testing"
21+
"time"
2022

23+
"github.com/arduino/go-paths-helper"
2124
"github.com/stretchr/testify/require"
2225
)
2326

@@ -39,3 +42,133 @@ func TestPrintableCommand(t *testing.T) {
3942
result := printableCommand(parts)
4043
require.Equal(t, correct, result)
4144
}
45+
46+
func tempFile(t *testing.T, prefix string) *paths.Path {
47+
file, err := os.CreateTemp("", prefix)
48+
file.Close()
49+
require.NoError(t, err)
50+
return paths.New(file.Name())
51+
}
52+
53+
func TestObjFileIsUpToDateObjMissing(t *testing.T) {
54+
sourceFile := tempFile(t, "source")
55+
defer sourceFile.RemoveAll()
56+
57+
upToDate, err := ObjFileIsUpToDate(sourceFile, nil, nil)
58+
require.NoError(t, err)
59+
require.False(t, upToDate)
60+
}
61+
62+
func TestObjFileIsUpToDateDepMissing(t *testing.T) {
63+
sourceFile := tempFile(t, "source")
64+
defer sourceFile.RemoveAll()
65+
66+
objFile := tempFile(t, "obj")
67+
defer objFile.RemoveAll()
68+
69+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, nil)
70+
require.NoError(t, err)
71+
require.False(t, upToDate)
72+
}
73+
74+
func TestObjFileIsUpToDateObjOlder(t *testing.T) {
75+
objFile := tempFile(t, "obj")
76+
defer objFile.RemoveAll()
77+
depFile := tempFile(t, "dep")
78+
defer depFile.RemoveAll()
79+
80+
time.Sleep(time.Second)
81+
82+
sourceFile := tempFile(t, "source")
83+
defer sourceFile.RemoveAll()
84+
85+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, depFile)
86+
require.NoError(t, err)
87+
require.False(t, upToDate)
88+
}
89+
90+
func TestObjFileIsUpToDateObjNewer(t *testing.T) {
91+
sourceFile := tempFile(t, "source")
92+
defer sourceFile.RemoveAll()
93+
94+
time.Sleep(time.Second)
95+
96+
objFile := tempFile(t, "obj")
97+
defer objFile.RemoveAll()
98+
depFile := tempFile(t, "dep")
99+
defer depFile.RemoveAll()
100+
101+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, depFile)
102+
require.NoError(t, err)
103+
require.True(t, upToDate)
104+
}
105+
106+
func TestObjFileIsUpToDateDepIsNewer(t *testing.T) {
107+
sourceFile := tempFile(t, "source")
108+
defer sourceFile.RemoveAll()
109+
110+
time.Sleep(time.Second)
111+
112+
objFile := tempFile(t, "obj")
113+
defer objFile.RemoveAll()
114+
depFile := tempFile(t, "dep")
115+
defer depFile.RemoveAll()
116+
117+
time.Sleep(time.Second)
118+
119+
headerFile := tempFile(t, "header")
120+
defer headerFile.RemoveAll()
121+
122+
data := objFile.String() + ": \\\n\t" + sourceFile.String() + " \\\n\t" + headerFile.String()
123+
depFile.WriteFile([]byte(data))
124+
125+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, depFile)
126+
require.NoError(t, err)
127+
require.False(t, upToDate)
128+
}
129+
130+
func TestObjFileIsUpToDateDepIsOlder(t *testing.T) {
131+
sourceFile := tempFile(t, "source")
132+
defer sourceFile.RemoveAll()
133+
134+
headerFile := tempFile(t, "header")
135+
defer headerFile.RemoveAll()
136+
137+
time.Sleep(time.Second)
138+
139+
objFile := tempFile(t, "obj")
140+
defer objFile.RemoveAll()
141+
depFile := tempFile(t, "dep")
142+
defer depFile.RemoveAll()
143+
144+
res := objFile.String() + ": \\\n\t" + sourceFile.String() + " \\\n\t" + headerFile.String()
145+
depFile.WriteFile([]byte(res))
146+
147+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, depFile)
148+
require.NoError(t, err)
149+
require.True(t, upToDate)
150+
}
151+
152+
func TestObjFileIsUpToDateDepIsWrong(t *testing.T) {
153+
sourceFile := tempFile(t, "source")
154+
defer sourceFile.RemoveAll()
155+
156+
time.Sleep(time.Second)
157+
158+
objFile := tempFile(t, "obj")
159+
defer objFile.RemoveAll()
160+
depFile := tempFile(t, "dep")
161+
defer depFile.RemoveAll()
162+
163+
time.Sleep(time.Second)
164+
165+
headerFile := tempFile(t, "header")
166+
defer headerFile.RemoveAll()
167+
168+
res := sourceFile.String() + ": \\\n\t" + sourceFile.String() + " \\\n\t" + headerFile.String()
169+
depFile.WriteFile([]byte(res))
170+
171+
upToDate, err := ObjFileIsUpToDate(sourceFile, objFile, depFile)
172+
require.NoError(t, err)
173+
require.False(t, upToDate)
174+
}

‎internal/integrationtest/compile_4/compile_test.go‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,13 +387,15 @@ func testBuilderBridgeExample(t *testing.T, env *integrationtest.Environment, cl
387387

388388
// Simulate a library use in libraries build path
389389
require.NoError(t, buildPath.Join("libraries", "SPI").MkdirAll())
390+
require.NoError(t, buildPath.Join("libraries", "dummy_file").WriteFile([]byte{}))
390391

391392
// Build again...
392393
_, err = tryBuild(t, env, cli, "arduino:avr:leonardo", &buildOptions{NoClean: true})
393394
require.NoError(t, err)
394395

395396
require.False(t, buildPath.Join("libraries", "SPI").Exist())
396397
require.True(t, buildPath.Join("libraries", "Bridge").Exist())
398+
require.True(t, buildPath.Join("libraries", "dummy_file").Exist())
397399
})
398400

399401
t.Run("Preprocess", func(t *testing.T) {

‎legacy/builder/test/builder_utils_test.go‎

Lines changed: 0 additions & 156 deletions
This file was deleted.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /