Skip to content

Commit 0ae053a

Browse files
committed
Fail if a sketch file is a broken symlink
1 parent 1feaec5 commit 0ae053a

File tree

4 files changed

+14
-1
lines changed

4 files changed

+14
-1
lines changed

Diff for: internal/arduino/sketch/sketch.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,10 @@ func (s *Sketch) supportedFiles() (paths.PathList, error) {
187187

188188
files, err := s.FullPath.ReadDirRecursiveFiltered(
189189
paths.AndFilter(
190-
filterOutBrokenLinks,
190+
paths.OrFilter(
191+
filterValidExtensions,
192+
filterOutBrokenLinks,
193+
),
191194
filterOutBuildPaths,
192195
),
193196
paths.AndFilter(

Diff for: internal/integrationtest/compile_4/broken_symlink_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,11 @@ func TestCompileWithBrokenSymLinks(t *testing.T) {
3737
_, _, err = cli.Run("compile", "-b", "arduino:avr:uno", sketch.String())
3838
require.NoError(t, err)
3939
})
40+
41+
t.Run("SketchFileBroken", func(t *testing.T) {
42+
sketch, err := paths.New("testdata", "ValidSketchWithBrokenSketchFileSymlink").Abs()
43+
require.NoError(t, err)
44+
_, _, err = cli.Run("compile", "-b", "arduino:avr:uno", sketch.String())
45+
require.Error(t, err)
46+
})
4047
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
void setup() {}
2+
void loop() {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broken

0 commit comments

Comments
 (0)