diff --git a/src/arduino.cc/builder/sketch_source_merger.go b/src/arduino.cc/builder/sketch_source_merger.go index a5fb4e75..fdf7f9ec 100644 --- a/src/arduino.cc/builder/sketch_source_merger.go +++ b/src/arduino.cc/builder/sketch_source_merger.go @@ -32,6 +32,7 @@ package builder import ( "arduino.cc/builder/constants" "arduino.cc/builder/types" + "path/filepath" ) type SketchSourceMerger struct{} @@ -51,7 +52,7 @@ func (s *SketchSourceMerger) Run(context map[string]interface{}) error { } func addPreprocLine(sketch *types.SketchFile) string { - source := "#line 1 \"" + sketch.Name + "\"\n" + source := "#line 1 \"" + filepath.Base(sketch.Name) + "\"\n" source += sketch.Source source += "\n" diff --git a/src/arduino.cc/builder/test/coan_runner_test.go b/src/arduino.cc/builder/test/coan_runner_test.go index 86ee7ec3..0cd73240 100644 --- a/src/arduino.cc/builder/test/coan_runner_test.go +++ b/src/arduino.cc/builder/test/coan_runner_test.go @@ -34,6 +34,7 @@ import ( "arduino.cc/builder/constants" "arduino.cc/builder/types" "github.com/stretchr/testify/require" + "io/ioutil" "os" "path/filepath" "strings" @@ -67,7 +68,10 @@ func TestCoanRunner(t *testing.T) { NoError(t, err) } - expectedSource := LoadAndInterpolate(t, filepath.Join("sketch2", "SketchWithIfDef.resolved.directives.txt"), context) + bytes, err1 := ioutil.ReadFile(filepath.Join("sketch2", "SketchWithIfDef.resolved.directives.txt")) + NoError(t, err1) + expectedSource := string(bytes) + require.Equal(t, expectedSource, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } diff --git a/src/arduino.cc/builder/test/helper.go b/src/arduino.cc/builder/test/helper.go index 545e6b1d..67ebb8cb 100644 --- a/src/arduino.cc/builder/test/helper.go +++ b/src/arduino.cc/builder/test/helper.go @@ -38,21 +38,8 @@ import ( "io/ioutil" "path/filepath" "testing" - "text/template" - "bytes" ) -func LoadAndInterpolate(t *testing.T, filename string, context map[string]interface{}) string { - tpl, err := template.ParseFiles(filename) - NoError(t, err) - - var buf bytes.Buffer - err = tpl.Execute(&buf, context) - NoError(t, err) - - return buf.String() -} - func Abs(t *testing.T, rel string) string { toolPath, err := filepath.Abs(rel) NoError(t, err) diff --git a/src/arduino.cc/builder/test/prototypes_adder_test.go b/src/arduino.cc/builder/test/prototypes_adder_test.go index 527297d8..44ab1b5e 100644 --- a/src/arduino.cc/builder/test/prototypes_adder_test.go +++ b/src/arduino.cc/builder/test/prototypes_adder_test.go @@ -34,6 +34,7 @@ import ( "arduino.cc/builder/constants" "arduino.cc/builder/types" "github.com/stretchr/testify/require" + "io/ioutil" "os" "path/filepath" "strings" @@ -116,7 +117,11 @@ func TestPrototypesAdderSketchWithIfDef(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch2", "SketchWithIfDef.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch2", "SketchWithIfDef.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -156,7 +161,11 @@ func TestPrototypesAdderBaladuino(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch3", "Baladuino.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch3", "Baladuino.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -196,7 +205,11 @@ func TestPrototypesAdderCharWithEscapedDoubleQuote(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch4", "CharWithEscapedDoubleQuote.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch4", "CharWithEscapedDoubleQuote.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -236,7 +249,11 @@ func TestPrototypesAdderIncludeBetweenMultilineComment(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch5", "IncludeBetweenMultilineComment.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch5", "IncludeBetweenMultilineComment.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -276,7 +293,11 @@ func TestPrototypesAdderLineContinuations(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch6", "LineContinuations.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch6", "LineContinuations.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -316,7 +337,11 @@ func TestPrototypesAdderStringWithComment(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch7", "StringWithComment.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch7", "StringWithComment.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -356,7 +381,11 @@ func TestPrototypesAdderSketchWithStruct(t *testing.T) { NoError(t, err) } - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch8", "SketchWithStruct.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch8", "SketchWithStruct.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } @@ -399,7 +428,11 @@ func TestPrototypesAdderSketchWithConfig(t *testing.T) { require.Equal(t, "#include \n#line 1\n", context[constants.CTX_INCLUDE_SECTION].(string)) require.Equal(t, "void setup();\nvoid loop();\n#line 13\n", context[constants.CTX_PROTOTYPE_SECTION].(string)) - preprocessed := LoadAndInterpolate(t, filepath.Join("sketch_with_config", "sketch_with_config.preprocessed.txt"), context) + bytes, err := ioutil.ReadFile(filepath.Join("sketch_with_config", "sketch_with_config.preprocessed.txt")) + NoError(t, err) + + preprocessed := string(bytes) + require.Equal(t, preprocessed, strings.Replace(context[constants.CTX_SOURCE].(string), "\r\n", "\n", -1)) } diff --git a/src/arduino.cc/builder/test/sketch1/merged_sketch.txt b/src/arduino.cc/builder/test/sketch1/merged_sketch.txt index d8bf8d1f..598bc352 100644 --- a/src/arduino.cc/builder/test/sketch1/merged_sketch.txt +++ b/src/arduino.cc/builder/test/sketch1/merged_sketch.txt @@ -1,4 +1,4 @@ -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "sketch.ino" void setup() { } @@ -6,9 +6,9 @@ void setup() { void loop() { } -#line 1 "{{(index .sketch.OtherSketchFiles 0).Name}}" +#line 1 "old.pde" -#line 1 "{{(index .sketch.OtherSketchFiles 1).Name}}" +#line 1 "other.ino" String hello() { return "world"; } diff --git a/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.preprocessed.txt b/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.preprocessed.txt index abce771c..8babb4e9 100644 --- a/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "SketchWithIfDef.ino" #define DEBUG 1 #define DISABLED 0 diff --git a/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.resolved.directives.txt b/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.resolved.directives.txt index 1bcf249c..90ef2728 100644 --- a/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.resolved.directives.txt +++ b/src/arduino.cc/builder/test/sketch2/SketchWithIfDef.resolved.directives.txt @@ -1,4 +1,4 @@ -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "SketchWithIfDef.ino" #define DEBUG 1 #define DISABLED 0 diff --git a/src/arduino.cc/builder/test/sketch3/Baladuino.preprocessed.txt b/src/arduino.cc/builder/test/sketch3/Baladuino.preprocessed.txt index 1e1ad868..72a9c90b 100644 --- a/src/arduino.cc/builder/test/sketch3/Baladuino.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch3/Baladuino.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "Baladuino.ino" /* * The code is released under the GNU General Public License. * Developed by Kristian Lauszus, TKJ Electronics 2013 diff --git a/src/arduino.cc/builder/test/sketch4/CharWithEscapedDoubleQuote.preprocessed.txt b/src/arduino.cc/builder/test/sketch4/CharWithEscapedDoubleQuote.preprocessed.txt index 1a177143..9dcecab4 100644 --- a/src/arduino.cc/builder/test/sketch4/CharWithEscapedDoubleQuote.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch4/CharWithEscapedDoubleQuote.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "CharWithEscapedDoubleQuote.ino" #include // required to send and receive AT commands from the GPRS Shield #include // required for I2C communication with the RTC diff --git a/src/arduino.cc/builder/test/sketch5/IncludeBetweenMultilineComment.preprocessed.txt b/src/arduino.cc/builder/test/sketch5/IncludeBetweenMultilineComment.preprocessed.txt index 926fcf40..bb969776 100644 --- a/src/arduino.cc/builder/test/sketch5/IncludeBetweenMultilineComment.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch5/IncludeBetweenMultilineComment.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "IncludeBetweenMultilineComment.ino" #include /* #include diff --git a/src/arduino.cc/builder/test/sketch6/LineContinuations.preprocessed.txt b/src/arduino.cc/builder/test/sketch6/LineContinuations.preprocessed.txt index eb2e02be..9b967f53 100644 --- a/src/arduino.cc/builder/test/sketch6/LineContinuations.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch6/LineContinuations.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "LineContinuations.ino" const char *foo = "\ hello \ world\n"; diff --git a/src/arduino.cc/builder/test/sketch7/StringWithComment.preprocessed.txt b/src/arduino.cc/builder/test/sketch7/StringWithComment.preprocessed.txt index b524f0ca..19e21b51 100644 --- a/src/arduino.cc/builder/test/sketch7/StringWithComment.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch7/StringWithComment.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "StringWithComment.ino" void setup(); void loop(); #line 1 diff --git a/src/arduino.cc/builder/test/sketch8/SketchWithStruct.preprocessed.txt b/src/arduino.cc/builder/test/sketch8/SketchWithStruct.preprocessed.txt index 4ab8c926..8e6136c7 100644 --- a/src/arduino.cc/builder/test/sketch8/SketchWithStruct.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch8/SketchWithStruct.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "SketchWithStruct.ino" /* START CODE */ struct A_NEW_TYPE { diff --git a/src/arduino.cc/builder/test/sketch_source_merger_test.go b/src/arduino.cc/builder/test/sketch_source_merger_test.go index 7e99a34f..a3f36457 100644 --- a/src/arduino.cc/builder/test/sketch_source_merger_test.go +++ b/src/arduino.cc/builder/test/sketch_source_merger_test.go @@ -34,12 +34,12 @@ import ( "arduino.cc/builder/constants" "arduino.cc/builder/types" "github.com/stretchr/testify/require" + "io/ioutil" "path/filepath" "strings" "testing" ) - func TestMergeSketch(t *testing.T) { context := make(map[string]interface{}) context[constants.CTX_SKETCH_LOCATION] = filepath.Join("sketch1", "sketch.ino") @@ -57,6 +57,9 @@ func TestMergeSketch(t *testing.T) { source := context[constants.CTX_SOURCE].(string) - expected_source := LoadAndInterpolate(t, filepath.Join("sketch1", "merged_sketch.txt"), context) + bytes, err1 := ioutil.ReadFile(filepath.Join("sketch1", "merged_sketch.txt")) + NoError(t, err1) + + expected_source := string(bytes) require.Equal(t, expected_source, strings.Replace(source, "\r\n", "\n", -1)) } diff --git a/src/arduino.cc/builder/test/sketch_with_config/sketch_with_config.preprocessed.txt b/src/arduino.cc/builder/test/sketch_with_config/sketch_with_config.preprocessed.txt index fd68cb5c..700da6cf 100644 --- a/src/arduino.cc/builder/test/sketch_with_config/sketch_with_config.preprocessed.txt +++ b/src/arduino.cc/builder/test/sketch_with_config/sketch_with_config.preprocessed.txt @@ -1,6 +1,6 @@ #include #line 1 -#line 1 "{{.sketch.MainFile.Name}}" +#line 1 "sketch_with_config.ino" #include "config.h" #ifdef DEBUG