diff --git a/internal/arduino/sketch/sketch.go b/internal/arduino/sketch/sketch.go index 70e0cb40703..03cdb40da57 100644 --- a/internal/arduino/sketch/sketch.go +++ b/internal/arduino/sketch/sketch.go @@ -176,7 +176,10 @@ func (s *Sketch) supportedFiles() (paths.PathList, error) { files, err := s.FullPath.ReadDirRecursiveFiltered( paths.AndFilter( - filterOutBrokenLinks, + paths.OrFilter( + filterValidExtensions, + filterOutBrokenLinks, + ), filterOutBuildPaths, ), paths.AndFilter( diff --git a/internal/integrationtest/compile_4/broken_symlink_test.go b/internal/integrationtest/compile_4/broken_symlink_test.go index 952a9bfc612..d9ee032b179 100644 --- a/internal/integrationtest/compile_4/broken_symlink_test.go +++ b/internal/integrationtest/compile_4/broken_symlink_test.go @@ -37,4 +37,11 @@ func TestCompileWithBrokenSymLinks(t *testing.T) { _, _, err = cli.Run("compile", "-b", "arduino:avr:uno", sketch.String()) require.NoError(t, err) }) + + t.Run("SketchFileBroken", func(t *testing.T) { + sketch, err := paths.New("testdata", "ValidSketchWithBrokenSketchFileSymlink").Abs() + require.NoError(t, err) + _, _, err = cli.Run("compile", "-b", "arduino:avr:uno", sketch.String()) + require.Error(t, err) + }) } diff --git a/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/ValidSketchWithBrokenSketchFileSymlink.ino b/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/ValidSketchWithBrokenSketchFileSymlink.ino new file mode 100644 index 00000000000..660bdbccfdb --- /dev/null +++ b/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/ValidSketchWithBrokenSketchFileSymlink.ino @@ -0,0 +1,2 @@ +void setup() {} +void loop() {} diff --git a/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/other_file b/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/other_file new file mode 120000 index 00000000000..86a410dd1d3 --- /dev/null +++ b/internal/integrationtest/compile_4/testdata/ValidSketchWithBrokenSketchFileSymlink/other_file @@ -0,0 +1 @@ +broken \ No newline at end of file