Skip to content

Commit

Permalink
Sketch is fully copied in tmp when building
Browse files Browse the repository at this point in the history
Should fix: arduino/Arduino#5186

Signed-off-by: Cristian Maglie <c.maglie@arduino.cc>
  • Loading branch information
cmaglie committed Aug 1, 2016
1 parent d0ac261 commit 718eed5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
9 changes: 1 addition & 8 deletions src/arduino.cc/builder/sketch_loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,18 +92,11 @@ func collectAllSketchFiles(from string) ([]string, error) {
// Source files in the root are compiled, non-recursively. This
// is the only place where .ino files can be present.
rootExtensions := func(ext string) bool { return MAIN_FILE_VALID_EXTENSIONS[ext] || ADDITIONAL_FILE_VALID_EXTENSIONS[ext] }
err := utils.FindFilesInFolder(&filePaths, from, rootExtensions, false /* recurse */)
err := utils.FindFilesInFolder(&filePaths, from, rootExtensions, true /* recurse */)
if err != nil {
return nil, i18n.WrapError(err)
}

// The "src/" subdirectory of a sketch is compiled recursively
// (but .ino files are *not* compiled)
srcPath := filepath.Join(from, constants.SKETCH_FOLDER_SRC)
if info, err := os.Stat(srcPath); err == nil && info.IsDir() {
srcExtensions := func(ext string) bool { return ADDITIONAL_FILE_VALID_EXTENSIONS[ext] }
err = utils.FindFilesInFolder(&filePaths, srcPath, srcExtensions, true /* recurse */)
}
return filePaths, i18n.WrapError(err)
}

Expand Down
14 changes: 9 additions & 5 deletions src/arduino.cc/builder/test/sketch_loader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@
package test

import (
"path/filepath"
"testing"

"arduino.cc/builder"
"arduino.cc/builder/types"
"github.com/stretchr/testify/require"
"path/filepath"
"testing"
)

func TestLoadSketchWithFolder(t *testing.T) {
Expand Down Expand Up @@ -122,9 +123,12 @@ func TestLoadSketchFromFolder(t *testing.T) {

require.Equal(t, 0, len(sketch.OtherSketchFiles))

require.Equal(t, 2, len(sketch.AdditionalFiles))
require.Contains(t, sketch.AdditionalFiles[0].Name, "other.cpp")
require.Contains(t, sketch.AdditionalFiles[1].Name, "other.h")
require.Equal(t, 5, len(sketch.AdditionalFiles))
require.Contains(t, sketch.AdditionalFiles[0].Name, "sketch_with_subfolders/src/subfolder/other.cpp")
require.Contains(t, sketch.AdditionalFiles[1].Name, "sketch_with_subfolders/src/subfolder/other.h")
require.Contains(t, sketch.AdditionalFiles[2].Name, "sketch_with_subfolders/subfolder/dont_load_me.cpp")
require.Contains(t, sketch.AdditionalFiles[3].Name, "sketch_with_subfolders/subfolder/other.cpp")
require.Contains(t, sketch.AdditionalFiles[4].Name, "sketch_with_subfolders/subfolder/other.h")
}

func TestLoadSketchWithBackup(t *testing.T) {
Expand Down

0 comments on commit 718eed5

Please sign in to comment.